php 生成SQL格式的mysql备份示例

前端之家收集整理的这篇文章主要介绍了php 生成SQL格式的mysql备份示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP读取数据库生成一条一条的sql语句,可以用作MysqL的备份,PHP生成sql格式的MysqL备份,感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
经测试代码如下:
  1. /**
  2. * 生成一条sql语句,用作MysqL的备份
  3. *
  4. * @param
  5. * @arrange (512.笔记) jb51.cc
  6. **/
  7. if (!function_exists('MysqL_dump')) {
  8. function MysqL_dump($database) {
  9. $query = '';
  10. $tables = @MysqL_list_tables($database);
  11. while ($row = @MysqL_fetch_row($tables)) { $table_list[] = $row[0]; }
  12. for ($i = 0; $i < @count($table_list); $i++) {
  13. $results = MysqL_query('DESCRIBE ' . $database . '.' . $table_list[$i]);
  14. $query .= 'DROP TABLE IF EXISTS `' . $database . '.' . $table_list[$i] . '`;' . lnbr;
  15. $query .= lnbr . 'CREATE TABLE `' . $database . '.' . $table_list[$i] . '` (' . lnbr;
  16. $tmp = '';
  17. while ($row = @MysqL_fetch_assoc($results)) {
  18. $query .= '`' . $row['Field'] . '` ' . $row['Type'];
  19. if ($row['Null'] != 'YES') { $query .= ' NOT NULL'; }
  20. if ($row['Default'] != '') { $query .= ' DEFAULT \'' . $row['Default'] . '\''; }
  21. if ($row['Extra']) { $query .= ' ' . strtoupper($row['Extra']); }
  22. if ($row['Key'] == 'PRI') { $tmp = 'primary key(' . $row['Field'] . ')'; }
  23. $query .= ','. lnbr;
  24. }
  25. $query .= $tmp . lnbr . ');' . str_repeat(lnbr,2);
  26. $results = MysqL_query('SELECT * FROM ' . $database . '.' . $table_list[$i]);
  27. while ($row = @MysqL_fetch_assoc($results)) {
  28. $query .= 'INSERT INTO `' . $database . '.' . $table_list[$i] .'` (';
  29. $data = Array();
  30. while (list($key,$value) = @each($row)) { $data['keys'][] = $key; $data['values'][] = addslashes($value); }
  31. $query .= join($data['keys'],',') . ')' . lnbr . 'VALUES (\'' . join($data['values'],'\',\'') . '\');' . lnbr;
  32. }
  33. $query .= str_repeat(lnbr,2);
  34. }
  35. return $query;
  36. }
  37. }
  38. /*** 来自编程之家 jb51.cc(jb51.cc) ***/

猜你在找的PHP相关文章