Оператор MySQL, который возвращает оператор SQL?

StackOverflow https://stackoverflow.com/questions/63399

  •  09-06-2019
  •  | 
  •  

Вопрос

Мне нужно сделать дамп таблицы на удаленном сервере, но я не могу получить прямой доступ к серверу.Единственный доступ, который у меня есть, - это через PHP-скрипты.

Есть ли какой-то способ, с помощью которого MySQL вернет

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

заявление, например, о чем mysqldump вернется ли?

У меня нет доступа к phpMyAdmin, и я предпочтительно не хочу использовать exec, system или passthru.

Видишь этот вопрос для другого метода экспорта

Это было полезно?

Решение

1) можете ли вы запустить mysqldump из exec или passthru
2) взгляните на это: http://www.php-mysql-tutorial.com/perform-mysql-backup-php.php

Другие советы

Если вы можете использовать php-скрипты на сервере, я бы рекомендовал phpmyadmin.Затем вы можете сделать это из веб-интерфейса.

Вам следует проверить phpMyAdmin, это инструмент администрирования MySQL на базе php.Он поддерживает резервное копирование и восстановление базы данных, а также "графический интерфейс" для сервера баз данных.Это работает очень хорошо.

Я почти уверен 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;
}

Посмотрим, поможет ли это вам начать

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top