Экспорт структуры и данных (как в PhpMyAdmin) - PullRequest
6 голосов
/ 12 ноября 2009

Я хочу экспортировать данные и структуру из базы данных MySQL, используя PHP. Я знаю о команде SELECT INTO OUTFILE, но я хочу, чтобы файл, похожий на тот, который генерируется PhpMyAdmin в окне экспорта, поэтому все CREATE TABLE и INSERT INTO.

HВы знаете, как PhpMyAdmn генерирует эти файлы? Я просматривал код и нашел в нем команду SELECT INTO OUTFILE. Но я не уверен, что эта команда используется для создания этой структуры. Есть ли какая-либо другая команда, чтобы сделать это, или экспортированный файл создается вручную с использованием информации о схеме таблиц?

Ответы [ 3 ]

7 голосов
/ 12 ноября 2009

Вы можете сделать это, используя SHOW CREATE TABLE .

4 голосов
/ 07 марта 2012

Я сделал php-скрипт для резервного копирования таблиц mysql (только данные). это экспортирует данные mysql в файл sql, который полностью совместим с импортом phpmyadmin

может быть, это может помочь вам

MySQL скрипт резервного копирования данных в php: http://dl.dropbox.com/u/18434517/mysql_backup.php

2 голосов
/ 21 марта 2014

Здесь вы можете найти исчерпывающее решение для вывода структуры и данных 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);

?>

работает как шарм: -)

...