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.
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().
你去看在线文档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
手册看到这个
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.
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
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'aaa' in 'field list'
)每次执行查询以后,errorCode() 的结果都是最新的,所以我们可以很容易自己控制错误信息显示。