代码之家  ›  专栏  ›  技术社区  ›  Oto Shavadze

使用query()或prepare()方法处理PDO错误

  •  1
  • Oto Shavadze  · 技术社区  · 6 年前

    如果执行的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 
    }
    

    我是说case,当不需要关心sql注入和没有重复查询时。

    从性能角度看,它们是相同的吗?如果是的话,那么最好使用 查询() 变量,因为代码少了一点?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Bill Karwin    6 年前

    您可能希望使用异常。见 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();
    }