我需要在远程服务器上转储表,但无法直接访问服务器。我唯一的访问权限是通过PHP脚本。
MySQL是否会以某种方式返回
1
| INSERT INTO `table_name` (`field1`, `field2`) VALUES ('a', 'b'), ('c', 'd') |
陈述,例如mysqldump将返回什么?
我无权访问phpMyAdmin,并且最好不要使用exec,system或passthru。
有关另一个导出方法,请参见此问题
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界面执行此操作。