Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Try/Catch不使用此PDO查询_Php_Mysql_Pdo - Fatal编程技术网

Php Try/Catch不使用此PDO查询

Php Try/Catch不使用此PDO查询,php,mysql,pdo,Php,Mysql,Pdo,我有一个脚本,我正在通过用PDO准备的语句和查询替换内联mysql查询来更新它。当查询正确或返回结果时,它工作正常。但是,当查询语句中出现错误时,try/catch无效。例如,我使用了以下测试代码: $query = $this->dbh->prepare('SELEC menu_item, hyperlink, admin FROM top_menu;'); try { $query->execute(); $row =

我有一个脚本,我正在通过用PDO准备的语句和查询替换内联mysql查询来更新它。当查询正确或返回结果时,它工作正常。但是,当查询语句中出现错误时,try/catch无效。例如,我使用了以下测试代码:

$query = $this->dbh->prepare('SELEC menu_item, hyperlink, admin FROM top_menu;');
    try
    {
            $query->execute();
        $row = $query->fetch(PDO::FETCH_ASSOC));
                    die("success");

    }

    catch(Exception $e)
    {
        die("fail");        
    }
查询是错误的(“SELEC”而不是“SELECT”),因此脚本流应该放在异常/错误括号中,但它没有;我不断获得“成功”。我尝试了catch(pdotexception$e)而不是catch(Exception$e),得到了完全相同的结果

我做错了什么,我该如何解决?谢谢。

对于PDO的fetch(),失败时返回FALSE。没有抛出异常


请参阅:

类似的问题已经得到解答,除非您告诉PDO,否则它不会抛出异常。你参加过:

$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
在PDO对象上