Импорт mysql дампа средствами php

Импорт mysql дампа средствами php

В моем примере база была InnoDB, поэтому пример привожу с ее фишками:

//читаем файл с дампом
$str = file_get_contents("dump.sql");

//если есть CREATE TABLE, тогда создаем таблицы
if( preg_match_all("/\-\- Table.*?\s\-\-\s(.*?)\-\-/s", $str, $p) ) {
$er = false;
foreach( $p[1] as $v ) {

if( trim($v) != '' ) {

if(!mysql_query(trim($v), $link)) {

echo '<strong style="color: red;">Ошибка запроса:'.$v.'</strong>';

$er = true;

}

}

}

}

//если есть инсерты, инсертим ;)
if(preg_match_all("/\-\- Dumping data.*?\s\-\-\s(.*?)\-\-/s", $str, $p)) <span style="font-size: 13px;">{</span>

foreach( $p[1] as $v ) {

if( trim($v) != '' ) {

if(!mysql_query(trim($v), $link)) {

echo '<strong style="color: red;">Ошибка запроса:'.$v.'</strong>';

$er = true;

}

}

}

}

//создаем связи между таблицами
if(preg_match_all("/\-\- Constraints.*?\s\-\-\s(.*?)\-\-/s", $str, $p)) <span style="font-size: 13px;">{</span>

foreach( $p[1] as $v ) {

if( trim($v) != '' ) {

if(!mysql_query(trim($v), $link)) {

echo '<strong style="color: red;">Ошибка запроса:'.$v.'</strong>';

$er = true;

}

}

}

}

if( $er !== false ) {
echo '<strong style="color: green;">'.gettext("Дамп базы данных установлен.").'</strong>';
}
else {
echo '<strong style="color: green;">'.gettext("Дамп базы данных установлен с ошибками.").'</strong>';
}

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *