我试图使用php文件备份我的mysql数据库,以便将.gz
文件保存到我的服务器上。除文件外,它看起来非常好,不包含任何数据..
除了这一项重要的事情之外,所有生成的文件看起来都是正确的!
E.g。这是代码
生成的一行示例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,一旦我知道这将有用,我就会这样做。
答案 0 :(得分:0)
当我的朋友告诉我如何在phpmysql中设置权限时,我最后和EXEC声明一起去了。
谢谢你的时间。