PHP Backup Database class sharing
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26-27--28 29---30 31--32 33 34 35 36 37 38-39 40 41 42 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
<?php/** * * @name PHP Backup DATABASE * @param string $DbHost Connect host * @param string $DbUser user name * @param string $DbPwd connection Password * @p Aram string $DbName the database to be backed up @param string $saveFileName the name of the file to be saved, the default file is kept in the current folder, distinguished by date * @return Null * @example backupmy SqlData (' localhost ', ' root ', ' 123456 ', ' yourdbname '); * */function Backupmysqldata ($DbHost, $DbUser, $DBPWD, $DbName, $saveFileName = ') {Header ("Content-type:text/html;cha Rset=utf-8 "); error_reporting (0); Set_time_limit (0); Echo ' data backup, please wait ... <br/> '; $link = mysql_connect ($DbHost, $DbUser, $DbPwd) or Die (' Database connection failed: '. mysql_error ()); mysql_select_db ($DbName) or Die (' Database connection failed: '. mysql_error ()); mysql_query (' Set names UTF8 '); //declaring variable $isDropInfo = '; $insertSQL = '; $row = Array (); $tables = Array (); $tableStructure = Array (); $fileName = ($saveFileName $saveFileName: ' Mysql_data_bakeup_ '). Date (' Ymdhis '). '. SQL '; //Enumerating all tables of the database $res = mysql_query ("Show tables from $DbName"); while ($row = Mysql_fetch_row ($res)) { $tables [] = $row [0]; } mysql_free_result ($res); //Enumerate all table creation statements foreach ($tables as $val) { $res = mysql_query ("Show create Table $val", $link); $row = Mysql_ Fetch_row ($res); $isDropInfo = "DROP TABLE IF EXISTS '". $val. "'; RN"; $tableStructure = $isDropInfo. $row [1]. "; RN"; File_put_contents ($fileName, $tableStructure, file_append); Mysql_free_result ($res); //Enumerate INSERT statements for all tables foreach ($tables as $val) { $res = mysql_query ("SELECT * from $val"); //table without data Row INSERT while ($row = Mysql_fetch_row ($res)) { $SQLSTR = INSERT INTO '. $val. " ' VALUES ("; foreach ($row as $v) { $sqlStr. = "' $v ',"; }//Remove the last comma $sqlStr = substr ($sqlStr, 0, strlen ($SQLSTR)- 1); $sqlStr. = "); RN"; File_put_contents ($fileName, $SQLSTR, file_append); } mysql_free_result ($res); } Echo ' Data backup successful! '; //Call this method Backupmysqldata (' localhost ', ' root ', ' 123456 ', ' youdbname ');?> |