私はphpコードを持っています.sqlファイルをmysqlデータベースにインポートするために使用しています。コードが最初に行うことは、ファイルをチェックすることです。存在する場合は、いくつかのテーブルを削除し、SQLファイルをインポートします(削除されたテーブルを置き換えます)。あなたが想像することができるように、SQLファイルが無効だったが、コードが行進してテーブルを落とした。 PHPを使用してSQLファイルの妥当性を検証する方法はありますか?使用する前にSQLファイルを確認してください
これにはいくつかの理由でいくつかの自動化が必要です。私はいつも輸入しているわけではありません。インポート後、コードは直ちに新しいテーブルを使用して、他のテーブルのレコードを更新/作成/削除します。だから私はそれが成功かどうかをチェックするプロセスを停止するワークフローを持つことはできません。 PHPが成功を確認する方法が必要です。
$templine = '';
$lines = file($filename);
foreach ($lines as $line) {
if (substr($line, 0, 2) == '--' || $line == '') continue;
$templine .= $line;
if (substr(trim($line), -1, 1) == ';') {
$wpdb->query($templine);
$templine = '';
}
}
代わりに、最初にテーブルを削除するだけで、新しいテーブルを別の名前で作成しようとすることはできませんでしたか?それが成功した場合は、ドロップして名前を変更します。それ以外の場合は、ファイルが不良です。 – j08691
提案していただきありがとうございます。なぜ私の現在の状況のためにこれがうまくいかないのかを含めるように質問を更新しました。 –
@ModusPonen手動でチェックするのを止めることなく、彼と私の提案の両方を行うことができます。コードは、存在すると期待されている行に対してクエリを実行し、結果に基づいてコードが応答するようにします。 – Goose