PDO使用query()或prepare()方法

时间:2018-05-31 05:51:14

标签: php pdo

如果执行的SQL出错,有什么更好(更快)的处理方式?

使用PDO' query()方法:

$db_conn->query("some sql"); 
if ($db_conn->errorInfo()[2] !== NULL) {
    // there is error 
}

或使用prepare()方法:

$sth=$db_conn->prepare("some sql");
$sth->execute();
if ($sth->errorInfo()[2] !== NULL) {
    // there is error 
}

我的意思是,当没有必要关心SQL注入时以及没有重复查询时。

在性能方面是否相同?如果是,那么最好使用query()变体,因为代码少了一点?

1 个答案:

答案 0 :(得分:2)

您可能想要使用例外。见http://php.net/manual/en/pdo.error-handling.php

$db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

然后:

try {
    $sth=$db_conn->prepare("some sql");
    $sth->execute();
} catch (PDOException $e) {
    echo $e->getMessage();
}