关于php:MySQL陈述式会传回SQL陈述式?

关于php:MySQL陈述式会传回SQL陈述式?

MySQL statement that returns a SQL statement?

我需要在远程服务器上转储表,但无法直接访问服务器。我唯一的访问权限是通过PHP脚本。

MySQL是否会以某种方式返回

1
INSERT INTO `table_name` (`field1`, `field2`) VALUES ('a', 'b'), ('c', 'd')

陈述,例如mysqldump将返回什么?

我无权访问phpMyAdmin,并且最好不要使用execsystempassthru

有关另一个导出方法,请参见此问题


1)您可以从exec或passthru运行mysqldump吗
2)看一下:http://www.php-mysql-tutorial.com/perform-mysql-backup-php.php


这是一种生成大量独立查询语句的方法。您还可以使用implode来更有效地组合字符串,但是对于初学者来说更容易阅读,并且从中可以衍生出一百万种其他方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$results = mysql_query("SELECT * FROM `table_name`");
while($row = mysql_fetch_assoc($results)) {

    $query ="INSERT INTO `table_name`";
    $fields = '(';
    $values = '(';

    foreach($row as $field=>$value) {
        $fields .="'".$field."',";
        $values .="'".mysql_escape_string($value)."',";
    }

    //drop the last comma off
    $fields = substr($fields,0,-1);
    $values = substr($values,0,-1);

    $query .= $fields ." VALUES" . $values;

    //your final result
    echo $query;
}

看看是否可以开始使用


1
2
3
select 'insert into table table_name (field1, field2) values'
       || table_name.field1 || ', ' || table_field2 || ');'
from   table_name

应该让您开始。替换||使用字符串串联运算符来实现您的数据库风格。如果field1或field2是字符串,则必须想出一些引号/转义的技巧。


我非常确定phpMyAdmin将为您完成此操作。


您应该查看PHPMyAdmin,它是一个基于php的MySQL管理工具。它支持数据库的备份和恢复以及到数据库服务器的" GUI"。效果很好。


如果您可以在服务器上使用php脚本,则建议使用phpmyadmin。然后,您可以从Web界面执行此操作。


推荐阅读