Резервное копирование базы данных mysql с использованием php builds таблиц в порядке, но в таблицах нет данных

Я пытаюсь сделать резервную копию моей базы данных MySQL, используя файл PHP, чтобы сохранить .gz файл на мой сервер. Это выглядит очень хорошо, за исключением того, что файл не содержит никаких данных ..

Все созданные файлы выглядят правильно, кроме этой важной вещи!

Например. вот пример строки, созданной кодом

INSERT INTO ticket_sold VALUES("","","","","","","","","","","");

Это делает это для всех таблиц.

Я основал код на этом уроке, поэтому он должен работать: https://davidwalsh.name/backup-mysql-database-php

Вот мой код:

function backup_database_tables($host,$user,$pass,$name,$tables)
{

$link = mysql_connect($host,$user,$pass);
mysql_select_db($name,$link);

//get all of the tables
if($tables == '*')
{
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result))
{
$tables[] = $row[0];
}
}
else
{
$tables = is_array($tables) ? $tables : explode(',',$tables);
}

//cycle through each table and format the data
foreach($tables as $table)
{
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);

$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";

for ($i = 0; $i < $num_fields; $i++)
{
while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = preg_replace("n","\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}

Я думаю, что это связано с этой областью кода, но это немного за мной:

while($row = mysql_fetch_row($result))
{
$return.= 'INSERT INTO '.$table.' VALUES(';
for($j=0; $j<$num_fields; $j++)
{
$row[$j] = addslashes($row[$j]);
$row[$j] = preg_replace("n","\n",$row[$j]);
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
if ($j<($num_fields-1)) { $return.= ','; }
}

Как я уже сказал, все остальное работает отлично, и я очень взволнован всем этим, но мне просто нужно, чтобы этот последний кусочек работал.

Да, я знаю, что должен использовать PDO, я сделаю это, как только узнаю, что это сработает.

-1

Решение

В конце я пошел с заявлением EXEC, когда мой друг показал мне, как настроить привилегии в phpmysql.

Спасибо за ваше время.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]