由于MySQL查询失败而从PHP中的致命错误中恢复

时间:2015-08-25 14:51:32

标签: php mysql fatal-error silverstripe

我从AJAX调用中获取数据,然后我尝试将其插入数据库。我正在使用Silverstripe 3.1(使用DB :: query()),但这似乎是一个PHP的东西。

如果事务有效,那么一切都按计划运行,但是,如果查询失败,我会收到PHP致命错误。

基本上我正在寻找一种方法来继续,尽管有致命的错误,这样我就可以向用户抛出失败的通知。我想知道查询是否有效。

*编辑以包含代码

$sql = "UPDATE $table SET ,,"; // Syntax error added purposefully
        foreach ($update_array as $key => $value) {
            $name = $formHelpers->some_filter($key);
            $content = $formHelpers->some_filter($value);
            $sql .= " $name='$content',";
        }
        $sql = rtrim($sql, ",");
        $sql .= "WHERE id=$id";

        $result = DB::query($sql);

1 个答案:

答案 0 :(得分:0)

我需要看到您的代码,告诉您确切的需要做什么。但是,您正在寻找的概念称为try,catch,throw。进行数据库查询时,请添加catch语句。然后,如果错误被抛出,你可以抓住它并仍然做一些事情。这是一个关于Try,Catch,通过PHP的教程

http://www.w3schools.com/php/php_exception.asp