رفتن به مطلب

پست های پیشنهاد شده

سلام و خسته نباشید

من با استفاده از یک کد از سایتم بک آپ میگیرم اما مشکل اینه که کلمه های فارسی دیتابیس به صورت ؟؟؟؟؟؟؟ ذخیره میشن

کد من اینه:


<?php
//script for make full backup in host
//Devaloped By Pr0grammer
//Released at 30/1/2013 2:38AM
//global setting
$host='localhost';
$user='test_test';
$pass='55555';
$dbname='majale';
//***********************************************
$file=explode("/",curPageURL());
$file=$file[0].'/'.$file[1].'/'.$file[2].'/file_backup.zip';
backup_tables($host,$user,$pass,$dbname);
zip_make();
echo "<center><h3>Backup Created Successfully..!</h3><br/>";
echo "<a href=$file>Download Now</a></center>";
//***********************************************
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 IF EXISTS '.$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.sql','w+');
fwrite($handle,$return);
fclose($handle);
}
//*********************************************
function zip_make()
{
$zip = new ZipArchive();
//back up file name
$zip->open('file_backup.zip', ZipArchive::CREATE);
//path for zip
$dirName = realpath(dirname(__FILE__));
if (!is_dir($dirName)) {
throw new Exception('Directory ' . $dirName . ' does not exist');
}
$dirName = realpath($dirName);
if (substr($dirName, -1) != '/') {
$dirName.= '/';
}
$dirStack = array($dirName);
$cutFrom = strrpos(substr($dirName, 0, -1), '/')+1;
while (!empty($dirStack)) {
$currentDir = array_pop($dirStack);
$filesToAdd = array();
$dir = dir($currentDir);
while (false !== ($node = $dir->read())) {
if (($node == '..') || ($node == '.')) {
continue;
}
if (is_dir($currentDir . $node)) {
array_push($dirStack, $currentDir . $node . '/');
}
if (is_file($currentDir . $node)) {
$filesToAdd[] = $node;
}
}
$localDir = substr($currentDir, $cutFrom);
$zip->addEmptyDir($localDir);
foreach ($filesToAdd as $file) {
$zip->addFile($currentDir . $file, $localDir . $file);
}
}
$zip->close();
}
//****************************************
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>

ممنون میشم بگید مشکل کد کجاست

به اشتراک گذاری این ارسال


لینک به ارسال

سلام

زمان فراخوانی هم به صورت ???? لود میشن؟

به اشتراک گذاری این ارسال


لینک به ارسال

باید Collation دیتابیسی که روش بک آپ رو ذخیره می کنید utf8_persian_ci یا utf8_general_ci باشه

در ضمن برای بک آپ روی لوکال این آموزش رو هم بخونید

[sharedmedia=tutorials:tutorials:310]

به اشتراک گذاری این ارسال


لینک به ارسال

شما وقتی دسترسی لوکل داری چرا از هاست اقدام نمیکنی ؟

به اشتراک گذاری این ارسال


لینک به ارسال

سلام

زمان فراخوانی هم به صورت ???? لود میشن؟

وقتی ؟؟؟ ذخیره میشن موقع فراخوانی هم همین هستند

باید Collation دیتابیسی که روش بک آپ رو ذخیره می کنید utf8_persian_ci یا utf8_general_ci باشه

در ضمن برای بک آپ روی لوکال این آموزش رو هم بخونید

شما وقتی دسترسی لوکل داری چرا از هاست اقدام نمیکنی ؟

این کد خیلی خوبه چون حجم هاست من به چند گیگ میرسه و حجم دیتابیس سنگینه ولی با این کد به راحتی در 1 دقیقه میشه فول بکآپ گرفت و انتقال میدم به هاست دانلود

همه چی خوبه ولی وقتی فایل دیتابیس به اسم db-backup.sql ذخیره میشه تو هاست کلمه های فارسی به صورت ؟؟؟؟؟ ذخیره میشن

اگر این مشکل را در کد برطرف کنید ممنون میشم

ویرایش شده توسط beh9am

به اشتراک گذاری این ارسال


لینک به ارسال

بعد از اتصال به بانک این کد رو استفاده کنید :


mysql_query('SET NAMES \'utf8\'');

به اشتراک گذاری این ارسال


لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...