Я хочу импортировать несколько файлов 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.