MySQL语句返回一个SQL语句?

时间:2008-09-15 14:27:23

标签: php mysql export

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

MySQL是否会以某种方式返回

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

声明,就像mysqldump将返回的那样?

我无法访问phpMyAdmin,我最好不要使用execsystempassthru

有关其他导出方法的信息,请参阅this question

6 个答案:

答案 0 :(得分:5)

1)你可以从exec或passthru执行mysqldump 2)看看这个:http://www.php-mysql-tutorial.com/perform-mysql-backup-php.php

答案 1 :(得分:0)

如果你可以在服务器上使用php-scripts我会推荐phpmyadmin。然后,您可以从Web界面执行此操作。

答案 2 :(得分:0)

你应该看看PHPMyAdmin,这是一个基于php的MySQL管理工具。它支持数据库的备份和恢复以及数据库服务器的“GUI”。它运作得很好。

答案 3 :(得分:0)

我非常确定phpMyAdmindo this for you

答案 4 :(得分:0)

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

应该让你入门。替换||使用字符串连接运算符为您的db flavor。如果field1或field2是字符串,则必须提出引用/转义的技巧。

答案 5 :(得分:0)

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

$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;
}

看看是否能让你入门