我有用于将.sql文件导入mysql数据库的php代码。代码所做的第一件事是检查文件,如果它存在,那么它会丢弃几个表并导入sql文件(替换丢弃的表)。可以想象,有一次sql文件无效,但代码继续进行并删除了表。有没有办法用php验证sql文件的有效性?
由于几个原因,这需要一些自动化。我并不总是进口。导入后,代码立即使用新表来更新/创建/删除其他表中的记录。所以我不能有一个工作流程,我停止过程来检查它是否成功;我需要一种方法来验证PHP的成功。
这是用于导入sql文件的代码:
$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 = '';
}
}
答案 0 :(得分:0)
有趣。我可以想到两种方式。
一种方法是使用备用数据库作为测试,连接到该数据库,首先将sql导入此数据库,验证它是否适用于查询。如果通过,则连接到主数据库并照常进行。
另一种方法是将现有数据库导出到sql文件中。导入sql文件后,验证它是否适用于查询,如果没有,则使用导出的sql文件导入旧数据库。
所有这些都可以自动执行,只需一步即可完成。