如何引发PDOException?

Chi*_*uzo 4 php pdo exception

这段代码工作正常,但是exception如果出现任何问题,我会想要处理,所以我故意在语法中出错,query但没有任何反应.下面是代码

try {
    $sql = "INSERT INTO journals (topic, author, ) VALUES ('$topic', '$authors', ')";
    echo "1st";
    $lecturers_db->query($sql);
    echo "second";
} catch(PDOException $e) {
    echo $e->getMessage();
    echo $msg = "Error!";
} 
Run Code Online (Sandbox Code Playgroud)

没有明显的语法错误,代码工作正常,但语法错误,没有任何反应,try block执行中的所有代码和catch block从不执行的代码.

我想提出一个exception,请问我该怎么做呢,谢谢你的帮助.

mar*_*log 8

确保将属性设置PDO :: ATTR_ERRMODEPDO :: ERRMODE_EXCEPTION只要你初始化你的PDO对象,:

$lecturers_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)

之后,任何失败的查询都会引发异常


Jef*_*ert 7

抛出异常.代码中的语法错误!=异常.

<?php 
    try {
        $code = 12;
        throw new PDOException('Message', $code );
    } catch (PDOException $e) {

    }
?>
Run Code Online (Sandbox Code Playgroud)

但是,来自maual:

您不应该从自己的代码中抛出PDOException.有关PHP中的异常的更多信息,请参阅异常.

我的建议是抛出一般异常,或编写自己的自定义异常来处理错误.