Создать ответ 
Резервное копирование базы данных
Автор Сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #11
RE: Резервное копирование базы данных
Здравствуйте, испробовал импорт бэкапа
PHP код:
<?php
$str
=file_get_contents('acad-13.43.49-19.11.2016.sql');
$str is_array($str) ? $str explode(';',$str);
foreach(
$str as $sql$res mysqli_query($db$sql); 
?>
файл находится в той же папке, где и бэкап acad-13.43.49-19.11.2016.sql
Старые таблицы из базы удалил для проверки, оставил только "пустую" БД.
В данный момент при запуске файла выдается ошибка:
Цитата:Warning: mysqli_query() expects parameter 1 to be mysqli, null given in D:\Site\OpenServer\domains\site.net\www\dump\imp_base_mysqli.php on line 4

где 4 строка
Код:
foreach($str as $sql) $res = mysqli_query($db, $sql);

Что делаю не так? Удалял БД совсем из phpmyadmin, такая же ошибка, хотя если имеется "пустая" БД acad и в phpadmin попробовать сделать импорт acad-13.43.49-19.11.2016.sql для этой базы, то все нормально, а с помощью файла пока не импорт не работает.

Заранее благодарен Yes
19.11.2016 13:56:53
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #12
RE: Резервное копирование базы данных
Соединение с БД установите (mysqli_connect).
19.11.2016 20:21:26
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #13
RE: Резервное копирование базы данных
Здравствуйте, проверил в работе.
Сейчас выдается ошибка для каждой таблицы
Цитата:Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user ' CREATE TABLE `dwg_contacts` ( `id` int(10) '@'localhost' (using password: NO) in D:\Site\OpenServer\domains\site.net\www\dump\imp_base_mysqli.php on line 4
если код:
Код:
<?php
$str=file_get_contents('acad-13.43.49-19.11.2016.sql');
$str = is_array($str) ? $str : explode(';',$str);
foreach($str as $sql) $res = mysqli_connect($db, $sql); //4 строка
?>
если 4 строка такая:
Цитата:foreach($str as $sql) $res = $db=mysqli_connect("localhost","ale10ey","test","acad") or die();
то при запуске - белая страница без ошибок
Пробовал подключаться к БД, но такая же история, что упустил ? Scratch
19.11.2016 22:56:45
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #14
RE: Резервное копирование базы данных
Shocked Вот это Вы выдали. Big Grin

Цитата:Соединение с БД установите (mysqli_connect).

Я имел ввиду прежде чем работать с БД, необходимо для начала к ней подключиться...

PHP код:
$db mysqli_connect($host$user$pass$db_name) or die("Сервер базы данных не доступен");
$str=file_get_contents('file_name.sql');
$str is_array($str) ? $str explode(';',$str);
foreach(
$str as $sql$res mysqli_query($db$sql); 

Соответственно вместо $host, $user, $pass, $db_name и file_name.sql подставить свои значения.
20.11.2016 18:11:31
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #15
RE: Резервное копирование базы данных
Ok да, что-то я "косякнул", Blush надо быть внимательней, да и выспаться не мешало бы Tired
Спасибо, все работает Yes
20.11.2016 18:40:31
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #16
RE: Резервное копирование базы данных
Здравствуйте, есть небольшая проблема в скрипте импорта БД

Импорт выполняется успешно и все таблицы на месте, но в таблице comment (комментарии) ничего нет - таблица пустая...

Собственно сам код:
PHP код:
$connect mysqli_connect("localhost","","","") or die("Сервер базы данных не доступен");

$str=file_get_contents('test-16.08.01-06.01.2018.sql');
$str is_array($str) ? $str explode(';',$str);
foreach(
$str as $sql$res mysqli_query($connect$sql); 

Если же файл test-16.08.01-06.01.2018.sql с помощью phpadmin импортировать, то все нормально (комментарии есть в таблице comment), а если напрямую - нет.

Получается, что возвращается пустой массив для explode (); ?

P.S.: Раньше не не проверял каждую таблицу, проверил - импортируется и думал всё OK, но выходит, что строки разбиваются неверно ...
Вы сталкивались с такой проблемой ?

Кстати проверил в работе ещё один скрипт, немного подправил, сейчас работает, но такая же проблема, как и в предыдущем скрипте.
Таблица comment есть, но она пустая Be

PHP код:
$sqlfile 'test-16.08.01-06.01.2018.sql';
    if (!
file_exists($sqlfile));
    
$open_file fopen ($sqlfile"r");
    
$buf fread($open_filefilesize($sqlfile));
    
fclose ($open_file);

    
$a 0;

    while (
$b strpos($buf,";",$a+1)){
    
$i++;
    
$a substr($buf,$a+1,$b-$a);
    
mysqli_query($connect,$a);
    
$a $b;
    } 
(Последний раз сообщение было отредактировано 07.01.2018 в 09:18:19, отредактировал пользователь ale10ey.)
07.01.2018 09:02:06
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #17
RE: Резервное копирование базы данных
Здравствуйте, что-то я так и не понял почему вся таблицы импортируются нормально, за исключением таблицы с комментариями, таблица есть, а комментариев нет...

Если будет у вас свободная минутка, гляньте где косяк, а то имеется 2 кода (в предыдущем сообщении) и не один не срабатывает.
13.01.2018 15:05:09
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru