使用前验证SQL文件

时间:2017-05-12 19:31:58

标签: php mysql

我有用于将.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 = '';  
    }  
}  

1 个答案:

答案 0 :(得分:0)

有趣。我可以想到两种方式。

一种方法是使用备用数据库作为测试,连接到该数据库,首先将sql导入此数据库,验证它是否适用于查询。如果通过,则连接到主数据库并照常进行。

另一种方法是将现有数据库导出到sql文件中。导入sql文件后,验证它是否适用于查询,如果没有,则使用导出的sql文件导入旧数据库。

所有这些都可以自动执行,只需一步即可完成。