簡體   English   中英

MySQL 語句返回 SQL 語句?

[英]MySQL statement that returns a SQL statement?

我需要在遠程服務器上轉儲表,但我無法直接訪問服務器。 我唯一的訪問權限是通過 PHP 腳本。

MySQL 是否會以某種方式返回

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

如果您可以在服務器上使用 php 腳本,我會推薦phpmyadmin 然后,您可以從 Web 界面執行此操作。

您應該查看PHPMyAdmin ,它是基於 php 的 MySQL 管理工具。 它支持數據庫的備份和恢復以及數據庫服務器的“GUI”。 它工作得很好。

這個

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

看看這是否能讓你開始

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM