返回SQL语句的MySQL语句?

时间:2020-03-05 18:53:36  来源:igfitidea点击:

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

有什么方法可以让MySQL返回

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

回答

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

回答

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

回答

我很确定phpMyAdmin会为我们做这件事。

回答

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

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

回答

这是一种生成大量独立查询语句的方法。我们也可以使用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;
}

看看是否可以开始