امروز:پنج شنبه ,۱۳۹۸/۰۳/۳۰
Download http://bigtheme.net/joomla Free Templates Joomla! 3
Home / PHP / بک آپگیری از دیتابیسmysql از طریق کد php

بک آپگیری از دیتابیسmysql از طریق کد php

برای بک آپ (backup)گیری از دیتابیس mysql از طریق کد php مینوانیم به صورت زیر عمل کنیم
ابتدا به دیتابیس متصل می شویم
سپس تمام جداول دیتابیس انتخابی را در آرایه قرار میدهیم
و با استفاده از کوئری select اطلاعات را ذخیره و پس از آن به محل مورد نظر انتقال میدهیم و write می کنیم

 backup_tables('localhost', 'user', 'password', 'dbname');
        /* backup the db OR just a table */
        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);
            }
$return="";
            //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++) {
</br>
                    while ($row = mysql_fetch_row($result)) {
</br>
                        $return.= 'INSERT INTO ' . $table . ' VALUES(';
</br>
                        for ($j = 0; $j < $num_fields; $j++) {
</br>
                            $row[$j] = addslashes($row[$j]);
</br>
                            $row[$j] = ereg_replace("\n", "\\n", $row[$j]);
</br>
                            if (isset($row[$j])) {
</br>
                                $return.= '"' . $row[$j] . '"';
</br>
                            } else {
</br>
                                $return.= '""';
</br>
                            }
</br>
                            if ($j < ($num_fields - 1)) {
</br>
                                $return.= ',';
</br>
                            }
</br>
                        }
</br>
                        $return.= ");\n";
</br>
                    }
</br>
                }
</br>
                $return.="\n\n\n";
</br>
            }
</br>
            //save file
</br>
          $handle = fopen('repository/ghasreahan-' .date('Y-m-d-H-i-s').'-'. (md5(implode(',', $tables))) . '.sql', 'w+');
</br>
            fwrite($handle, $return);
</br>
            fclose($handle);
</br>
        }
</br>

Check Also

set php.ini in php code

set php.ini in php code   فایل php.ini فایلی است که دارای یک سری مقادیر …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *