if(!$PDO->query())
{
  exit('失败');
}

解决方案 »

  1.   

    luojxun() 是不是用PDO->errorCode()来校验是否查询正确?
    手册看到这个
    PDO->errorCode()
    (no version information, might be only in CVS)PDO->errorCode() --  Fetch the SQLSTATE associated with the last operation on the database handle 
    说明
    class PDO { string errorCode ( void )}
    返回值
    Returns a SQLSTATE, a five-character alphanumeric identifier defined in the ANSI SQL-92 standard. Briefly, an SQLSTATE consists of a two-character class value followed by a three-character subclass value. A class value of 01 indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO. Class values other than '01', except for the class 'IM', indicate an error. The class 'IM' is specific to warnings and errors that derive from the implementation of PDO (or perhaps ODBC, if you're using the ODBC driver) itself. The subclass value '000' in any class indicates that there is no subclass for that SQLSTATE. PDO->errorCode() only retrieves error codes for operations performed directly on the database handle. If you create a PDOStatement object through PDO->prepare() or PDO->query() and invoke an error on the statement handle, PDO->errorCode() will not reflect that error. You must call PDOStatement->errorCode() to return the error code for an operation performed on a particular statement handle. 
      

  2.   

    If you do not fetch all of the data in a result set before issuing your next call to PDO->query(), your call may fail. Call PDOStatement->closeCursor() to release the database resources associated with the PDOStatement object before issuing your next call to PDO->query().
      

  3.   

    你去看在线文档dozoyousan at gmail dot com
    03-May-2006 01:26 
    > When query() fails, the boolean false is returned. I think that is "Silent Mode".
    If that set attribute ErrorMode "Exception Mode"
    then that throw PDOException.
     $pdoObj = new PDO( $dsn, $user, $pass );
     $pdoObj->setAttribute("PDO::ATTR_ERRMODE", PDO::ERRMODE_EXCEPTION); 
    Nicolas Brard Nault
    06-Mar-2006 07:03 
    When query() fails, the boolean false is returned
      

  4.   

    返回的对象可能是成功可能失败,但对象都不为空,if(!$PDO->query())肯定为假.因此不能用此判断.用PDO->errorCode()应该可以.
      

  5.   

    PDO和PDOStatement对象有errorCode() 和 errorInfo() 方法,如果没有任何错误, errorCode() 返回的是: 00000 ,否则就会返回一些错误代码。errorInfo() 返回的一个数组,包括PHP定义的错误代码和MySQL的错误代码和错误信息,数组结构如下:Array
    (
         [0] => 42S22
         [1] => 1054
         [2] => Unknown column 'aaa' in 'field list'
    )每次执行查询以后,errorCode() 的结果都是最新的,所以我们可以很容易自己控制错误信息显示。