برای بک آپ (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>