Оператор MySQL, который возвращает оператор SQL?
Вопрос
Мне нужно сделать дамп таблицы на удаленном сервере, но я не могу получить прямой доступ к серверу.Единственный доступ, который у меня есть, - это через 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;
}
Посмотрим, поможет ли это вам начать