我想使用PHP从MySQL数据库导出数据和结构。我知道SELECT INTO OUTFILE
命令,但我希望文件类似于PhpMyAdmin在导出窗口中生成的文件,所以CREATE TABLE
和INSERT INTO
。
你知道PhpMyAdmn如何生成这些文件吗?我正在浏览代码,我在其中找到了命令SELECT INTO OUTFILE
。但是我不确定这个命令是用来生成那个结构的。是否有其他命令可以执行此操作,或者使用有关表模式的信息手动创建导出的文件?
答案 0 :(得分:7)
您可以使用SHOW CREATE TABLE执行此操作。
答案 1 :(得分:4)
我已经制作了一个PHP脚本来备份mysql表(只有数据)。这会将mysql数据导出到一个与phpmyadmin import
完全兼容的sql文件可能这可以帮到你
mysql data backup script in php: http://dl.dropbox.com/u/18434517/mysql_backup.php
答案 2 :(得分:2)
在这里你可以找到一个全面的解决方案来转储mysql结构和数据,就像在PMA中一样(不使用exec,passthru等):
https://github.com/antarasi/MySQL-Dump-with-Foreign-keys
我的增强功能是dszymczuk项目的分支。
用法很简单
<?php
//MySQL connection parameters
$dbhost = 'localhost';
$dbuser = 'dbuser';
$dbpsw = 'pass';
$dbname = 'dbname';
//Connects to mysql server
$connessione = @mysql_connect($dbhost,$dbuser,$dbpsw);
//Set encoding
mysql_query("SET CHARSET utf8");
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
//Includes class
require_once('FKMySQLDump.php');
//Creates a new instance of FKMySQLDump: it exports without compress and base-16 file
$dumper = new FKMySQLDump($dbname,'fk_dump.sql',false,false);
$params = array(
//'skip_structure' => TRUE,
//'skip_data' => TRUE,
);
//Make dump
$dumper->doFKDump($params);
?>
就像一个魅力: - )