PDA

View Full Version : سوال: نسخه پشتیبان از mysql بوسیله کد php



billgivz
پنج شنبه 04 شهریور 1389, 00:12 صبح
سلام من کد مربوط به تهیه نسخه پشتیبان بویسله کد php رو دارم مشکل اینجاست واسه utf8 کار نمیکنه یعنی فایل بدست امده بعد از import به صورت علامت سوال نمایش میده

در کل کسی هست این کد رو تغییر بده تا بشه از داده های فارسی درون mysql نسخه پشتیبان گرفت ممنون میشم .

http://davidwalsh.name/backup-mysql-database-php


[PHP]<?php
backup_tables('localhost','root','','behdasht','st aff');
function backup_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
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] = ereg_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";
}
//save file
$handle = fopen('db-backup-'.time().'-'.(implode(',',$tables)).'.sql','w+');
fwrite($handle,$return);
fclose($handle);
}

?>
[/PHP
]

parselearn
پنج شنبه 04 شهریور 1389, 01:41 صبح
http://barnamenevis.org/forum/showthread.php?t=233740&highlight=%D8%9F%D8%9F%D8%9F

billgivz
پنج شنبه 04 شهریور 1389, 16:56 عصر
کسی نیست مشکل من رو حل کنه ؟