نمایش نتایج 1 تا 7 از 7

نام تاپیک: درخواست کلاس بک اپ و بازگردانی دیتابیس

  1. #1
    کاربر دائمی آواتار masiha68
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    نقطه ی صفر مرزی
    پست
    816

    درخواست کلاس بک اپ و بازگردانی دیتابیس

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

  2. #2

    نقل قول: درخواست کلاس بک اپ و بازگردانی دیتابیس

    این کد رو برای Backup استفاده کنید:

    <?php
    function backup_db($host, $user, $pass, $name, $tables = '*') {
    date_default_timezone_set('Asia/Tehran');

    $return = '';

    mysql_connect($host,$user,$pass) or die('Connection error');
    mysql_select_db($name) or die('Database error');
    mysql_query('SET NAMES \'utf8\'');
    mysql_set_charset('utf8');

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

    foreach($tables as $table) {
    $result = mysql_query('SELECT * FROM `'.$table.'`');
    $num_fields = mysql_num_fields($result);
    $return .= 'DROP TABLE IF EXISTS `'.$table.'`;'.PHP_EOL.PHP_EOL;
    $row = mysql_fetch_row(mysql_query('SHOW CREATE TABLE `'.$table.'`'));
    $return .= $row[1].';'.PHP_EOL.PHP_EOL;

    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] = str_replace('\n', '\\n', $row[$j]);
    if (isset($row[$j])) {
    $return .= '\''.$row[$j].'\'';
    }
    else {
    $return .= '\'\'';
    }
    if ($j < ($num_fields - 1)) {
    $return .= ',';
    }
    }
    $return .= ');'.PHP_EOL;
    }
    }
    $return .= PHP_EOL.PHP_EOL.PHP_EOL;
    }

    header('Pragma: public'); // required
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Cache-Control: private',false); // required for certain browsers
    header('Content-Type: application/force-download');
    header('Content-Disposition: attachment; filename="db-backup-' . $name . '-' . date('Y,m,d-H,i,s') . '.sql' . '";');
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: ' . mb_strlen($return, 'utf-8'));
    echo $return;
    }
    ?>

    برای Restore هم بهتره از BigDump استفاده کنید.

  3. #3
    کاربر دائمی آواتار masiha68
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    نقطه ی صفر مرزی
    پست
    816

    نقل قول: درخواست کلاس بک اپ و بازگردانی دیتابیس

    این کد رو قبلا داشتم و مشکلش همون ندادن لینک دانلود بود . این کد شما هم کل دیتابیس رو توی صفحه نشون میده ...حالا نمی دونم مشکل از لوکال هاست منه یا ...

  4. #4
    کاربر دائمی آواتار masiha68
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    نقطه ی صفر مرزی
    پست
    816

    نقل قول: درخواست کلاس بک اپ و بازگردانی دیتابیس

    البته چند خطا هم از این نوع میده :



    Warning: Cannot modify header information - headers already sent by (output started at

  5. #5

    نقل قول: درخواست کلاس بک اپ و بازگردانی دیتابیس

    فایل رو با کدگذاری UTF-8 without BOM ذخیره کنید. قبل از کدهای PHP هم هیچ کدی نباشه (حتی یک Space خالی). مشکل بخاطر اینه که نمیتونه هدرها رو تغییر بده.

  6. #6
    کاربر دائمی آواتار masiha68
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    نقطه ی صفر مرزی
    پست
    816

    نقل قول: درخواست کلاس بک اپ و بازگردانی دیتابیس

    راه دیگه ای نداره ..چون من این فانکش رو توی پیج می زارم و اون رو توی یه پیج دیگه ای فراخوانی می کنم و تقریبا نمیشه که فضای خالی نداشته باشه ...

  7. #7

    نقل قول: درخواست کلاس بک اپ و بازگردانی دیتابیس

    ببینید، مهم نیست که توی اون صفحه، محتوا وجود داره یا نه. مهم اینه که اولاً همه صفحات سایتتون با کدگذاری UTF-8 without BOM ذخیره بشن و ثانیاً وقتی این تابع فراخوانی میشه و میخواد Backup رو برای دانلود بفرسته، قبلش چیزی برای مرورگر کاربر ارسال نشده باشه. اینجور وقتها بهتره مثل سایتهای دانلود، کاربر رو به صفحه ای Redirect کنید (یا با لینک دانلود توی پنجره جدید بفرستین) که این تابع داخلش صدا زده شده و قبلش هم هیچی (حتی doctype و...) نوشته نشده چون اگه اونها رو بگذارین، دیگه نمیشه هدرها رو تغییر داد و حتی اگه از Output Buffering استفاده کنید تا بتونین هدرها رو تغییر بدین، باز هم توی فایلی که کاربر دریافت میکنه، اون کدها هم دیده میشه که قطعاً چیزی نیست که موردنظر شماست.

تاپیک های مشابه

  1. درخواست کلاس برای ذخیره session ها در دیتابیس
    نوشته شده توسط navid3d_69 در بخش PHP
    پاسخ: 3
    آخرین پست: یک شنبه 05 خرداد 1392, 17:58 عصر
  2. درخواست یک کد برای انصال به دیتابیس
    نوشته شده توسط rojhin در بخش VB.NET
    پاسخ: 9
    آخرین پست: سه شنبه 28 فروردین 1386, 22:38 عصر
  3. درخواست معرفی ایزار برای گزارشگیری از دیتابیس
    نوشته شده توسط sarasara در بخش SQL Server
    پاسخ: 2
    آخرین پست: پنج شنبه 03 اسفند 1385, 14:44 عصر
  4. بازگردانی دیتابیس ! کمک !!!
    نوشته شده توسط adnan در بخش PHP
    پاسخ: 12
    آخرین پست: پنج شنبه 14 مهر 1384, 16:37 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •