Оператор MySQL, который возвращает оператор SQL? - PullRequest
6 голосов
/ 15 сентября 2008

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

Есть ли способ, которым MySQL вернет

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

утверждение, как то, что mysqldump вернет?

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

См. этот вопрос для другого метода экспорта

Ответы [ 6 ]

5 голосов
/ 15 сентября 2008

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

0 голосов
/ 15 сентября 2008

Вот один из подходов, который генерирует множество отдельных операторов запросов. Вы также можете использовать 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;
}

Посмотри, с чего ты начал

0 голосов
/ 15 сентября 2008

Это

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

должно помочь вам начать. Заменить || с оператором конкатенации строк для вашего вкуса БД. Если field1 или field2 являются строками, вам придется придумать какой-нибудь трюк для цитирования / экранирования.

0 голосов
/ 15 сентября 2008

Я уверен, что phpMyAdmin сделает сделает это за вас .

0 голосов
/ 15 сентября 2008

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

0 голосов
/ 15 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...