使用try-catch无法处理SQL异常

webrama.pl

我正在创建很大的导入脚本。我想查看任何有问题的(未执行的)SQL查询。我在使用try-catch PHP块捕获错误的SQL查询时遇到问题。

我有一个查询:

SELECT id FROM tag WHERE name IN ()

当然其中有一个错误,所以我想使用以下代码打印类似的查询:

$sql = "SELECT id FROM tag WHERE name ".$tagsSql."";

try
{
    $query = mysqli_query($this->mysqli, $sql);
    $result = $query->fetch_assoc();
}
catch(Exception $e)
{
    echo 'Problem with: '.$sql;
    print_r($e); die;
}

当运行脚本时,PHP只会向我抛出此信息:

Fatal error: Call to a member function fetch_assoc() on a non-object in C:\www\blackboard-import\index.php on line 227

为什么未捕获此错误?因为致命吗?我该如何处理这种情况?我使用mysqli与MySQL联系。

克罗

这不是常规异常,而是致命错误(导致PHP关闭)。mysqli_query()将在错误时返回false,这就是为什么您当前的脚本失败的原因,因此解决方案可能如下所示

try {
    $query = $this->msqli->query($sql);
    if ($query === FALSE) {
        throw new Exception($this->mysqli->error);
    }

    $result = $query->fetch_assoc();
} catch(Exception $e) {
    //...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用try和catch进行异常处理

来自分类Dev

不使用 try/catch 处理异常

来自分类Dev

Scala:使用 try/catch 重试异常处理

来自分类Dev

异常处理Try Catch块

来自分类Dev

我可以在Netlogo中使用try catch(异常处理)吗?

来自分类Dev

使用try catch的未处理异常的奇怪行为

来自分类Dev

替代多个try catch以处理异常

来自分类Dev

try / catch块中未处理的异常

来自分类Dev

使用try / catch不会捕获异常

来自分类Dev

我们可以继续使用try catch块进行异常处理吗?

来自分类Dev

使用Try方法的Java异常处理

来自分类Dev

无法处理错误 Powershell try with catch?

来自分类Dev

如何解决try-catch异常处理?

来自分类Dev

与try和catch有关的异常处理

来自分类Dev

Kotlin协程异常处理-如何抽象try-catch

来自分类Dev

异常由最外层的try / catch处理。Windows服务

来自分类Dev

如何解决我的try-catch异常处理?

来自分类Dev

Try-Catch 异常处理未提供正确响应

来自分类Dev

如何在 Begin Try Catch SQL Server 中使用批处理分隔符

来自分类Dev

使用try catch时如何知道可能的异常?

来自分类Dev

Java中的异常:使用throw或try-catch

来自分类Dev

对各种异常使用try-catch块(java)

来自分类Dev

无法在 try-catch C# 中捕获异常

来自分类Dev

使用try-catch java

来自分类Dev

Android-使用try and catch

来自分类Dev

使用try catch验证输入

来自分类Dev

Android-使用try and catch

来自分类Dev

在 FileWriter 上使用 try catch

来自分类Dev

在哪里使用try / catch和dataContext?(处理)