Как импортировать несколько файлов SQL в базу данных по одному - PullRequest
0 голосов
/ 17 мая 2019

Я хочу импортировать несколько файлов sql один за другим, после успешного импорта я хочу переместить файл в папку истории.если есть файл, который не удалось импортировать, я хочу, чтобы этот файл не перемещался в папку истории, чтобы я знал, какой файл не удалось, и импортируйте файл позже.

Как импортировать несколько файлов sql 1 на 1, а несначала объединить все файлы?используя PHP или Batch File.

Сначала я попытался объединить файл, но если какой-либо запрос не удался, я никогда не узнаю, какой именно.

Вот пакетный файл, который я использовал для слияния файла изатем импортируйте его в базу данных

copy /b C:\xampp\htdocs\cptest\v2\HO\sql\*.sql C:\xampp\htdocs\cptest\v2\HO\sql\all_files.sql
C:\xampp\mysql\bin\mysql -u root cptest < C:\xampp\htdocs\cptest\v2\HO\sql\all_files.sql

файл sql, который я хочу импортировать, содержит запрос на вставку строки в базу данных.Вот некоторый пример.

INSERT INTO `inout` (`id`, `date`, `time`, `type`, `qty`, `outlet`) 
VALUES 
    (NULL, '2019-05-15', '13:49:47', 'A', '6', 'TSC');

, если я объединю его в 1 файл, он должен быть таким:

INSERT INTO `inout` (`id`, `date`, `time`, `type`, `qty`, `outlet`) 
VALUES 
    (NULL, '2019-05-15', '13:49:47', 'A', '6', 'TSC');
INSERT INTO `inout` (`id`, `date`, `time`, `type`, `qty`, `outlet`) 
VALUES 
    (NULL, '2019-05-15', '13:50:01', 'V', '34', 'PV');

, если я поставлю условное завершение процесса, если есть и ошибка иошибка возникает только в 1 запросе, не отменяет ли он импорт всех запросов?

Я просто хочу импортировать 1 файл sql за раз, так что я могу сделать что-то вроде условного, если успех импорта sql,затем перейдите в папку истории, если она не удалась, затем перейдите в папку неудачной передачи.

edit: здесь я поместил свой код для создания zip-файла.

<?php
date_default_timezone_set("Asia/Bangkok");
$date =  date('Y-m-d');
$time =  date('H:i:s');
$timettl = date('H.i.s');
$type = $_POST['type'];
$qty = $_POST['qty'];
$outlet = $_POST['outlet'];
$quetest = "INSERT INTO `inout` (`id`, `date`, `time`, `type`, `qty`, `outlet`) VALUES (NULL, '" . $date . "', '" . $time . "', '" . $type . "', '" . $qty . "', '" . $outlet . "');";
$a = "test" . $date . "_" . $time . ".sql";
// file_put_contents("test/" . $a . "", $quetest);
$zip = new ZipArchive;
$res = $zip->open( 'C:\xampp\htdocs\cptest\V2\Transfer\test' . $date . '_' . $timettl . '.zip', ZipArchive::CREATE);
$zip->setPassword('12345');
if ($res === TRUE) {
    $zip->addFromString( $a, $quetest);
    $zip->setEncryptionName( $a, ZipArchive::EM_AES_256);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Я использую метод post для формы вводаи создайте zip-файл, содержащий файл .sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...