dbs Fri Nov 26 15:12:47 2004 EDT
Modified files: /phpdoc/en/reference/pdo/functions PDO-errorCode.xml PDO-errorInfo.xml Log: Document database handle error methods. http://cvs.php.net/diff.php/phpdoc/en/reference/pdo/functions/PDO-errorCode.xml?r1=1.1&r2=1.2&ty=u Index: phpdoc/en/reference/pdo/functions/PDO-errorCode.xml diff -u phpdoc/en/reference/pdo/functions/PDO-errorCode.xml:1.1 phpdoc/en/reference/pdo/functions/PDO-errorCode.xml:1.2 --- phpdoc/en/reference/pdo/functions/PDO-errorCode.xml:1.1 Wed Nov 10 17:21:21 2004 +++ phpdoc/en/reference/pdo/functions/PDO-errorCode.xml Fri Nov 26 15:12:46 2004 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.1 $ --> +<!-- $Revision: 1.2 $ --> <!-- Generated by xml_proto.php v2.1. Found in /scripts directory of phpdoc. --> <refentry id="function.PDO-errorCode"> <refnamediv> @@ -15,7 +15,72 @@ <void/> </methodsynopsis> - &warn.undocumented.func; + &warn.experimental.func; + <para> + Returns an integer value that maps to the generic error categories + defined in the <literal>PDO_ERR_*</literal> set of constants. + </para> + <para> + <function>PDO::errorCode</function> only retrieves error codes for operations + performed directly on the database handle. If you create a PDOStatement + object through <function>PDO::prepare</function> or + <function>PDO::query</function> and invoke an error on the statement + handle, <function>PDO::errorCode</function> will return + <literal>PDO_ERR_NONE</literal>. You must call + <function>PDOStatement::errorCode</function> to return the error + code for an operation performed on a particular statement handle. + </para> + <example><title>Determining which category of error occurred</title> + <programlisting role="php"> +<![CDATA[ +<?php +/* Provoke an error -- the BONES table does not exist */ +$dbh->exec("INSERT INTO bones(skull) VALUES ('reagan')"); + +echo "\nPDO::errorCode(): "; +switch ($dbh->errorCode()) { + case PDO_ERR_NONE: + echo "No error!\n"; + break; + case PDO_ERR_CANT_MAP: + echo "Error: Unable to map data types between database and PHP.\n"; + break; + case PDO_ERR_SYNTAX: + echo "Error: incorrect syntax\n"; + break; + case PDO_ERR_CONSTRAINT: + echo "Error: The request would violate a constraint.\n"; + break; + case PDO_ERR_NOT_FOUND: + echo "Error: The object could not be found.\n"; + break; + case PDO_ERR_ALREADY_EXISTS: + echo "Error: The object already exists.\n"; + break; + case PDO_ERR_NOT_IMPLEMENTED: + echo "Error: The requested function is not implemented.\n"; + break; + case PDO_ERR_MISMATCH: + echo "Error: mismatch\n"; + break; + case PDO_ERR_TRUNCATED: + echo "Error: The value was truncated because the input value was longer + than the maximum column length.\n"; + break; + case PDO_ERR_DISCONNECTED: + echo "Error: The connection to the requested database has been closed.\n"; + break; +} +?> +]]> + </programlisting> + </example> + &example.outputs; + <screen> +<![CDATA[ +PDO::errorCode(): Error: The object could not be found. +]]> + </screen> </refsect1> </refentry> http://cvs.php.net/diff.php/phpdoc/en/reference/pdo/functions/PDO-errorInfo.xml?r1=1.2&r2=1.3&ty=u Index: phpdoc/en/reference/pdo/functions/PDO-errorInfo.xml diff -u phpdoc/en/reference/pdo/functions/PDO-errorInfo.xml:1.2 phpdoc/en/reference/pdo/functions/PDO-errorInfo.xml:1.3 --- phpdoc/en/reference/pdo/functions/PDO-errorInfo.xml:1.2 Thu Nov 11 03:16:32 2004 +++ phpdoc/en/reference/pdo/functions/PDO-errorInfo.xml Fri Nov 26 15:12:46 2004 @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='iso-8859-1'?> -<!-- $Revision: 1.2 $ --> +<!-- $Revision: 1.3 $ --> <!-- Generated by xml_proto.php v2.1. Found in /scripts directory of phpdoc. --> <refentry id="function.PDO-errorInfo"> <refnamediv> @@ -15,7 +15,79 @@ <void/> </methodsynopsis> - &warn.undocumented.func; + &warn.experimental.func; + + <para> + <function>PDO::errorInfo</function> returns an array of error information + about the last operation performed by this database handle. The array + consists of the following fields: + <informaltable> + <tgroup cols='2'> + <thead> + <row> + <entry>Element</entry> + <entry>Information</entry> + </row> + </thead> + <tbody> + <row> + <entry>0</entry> + <entry>Generic PDO error code corresponding to one of the + <literal>PDO_ERR_*</literal> constants.</entry> + </row> + <row> + <entry>1</entry> + <entry>Driver-specific error code.</entry> + </row> + <row> + <entry>2</entry> + <entry>Driver-specific error message.</entry> + </row> + </tbody> + </tgroup> + </informaltable> + </para> + + <para> + <function>PDO::errorInfo</function> only retrieves error information + for operations performed directly on the database handle. If you create + a PDOStatement object through <function>PDO::prepare</function> or + <function>PDO::query</function> and invoke an error on the statement + handle, <function>PDO::errorInfo</function> will insert an error code + of <literal>PDO_ERR_NONE</literal> into the first element of the returned + array. You must call <function>PDOStatement::errorInfo</function> to + return the error information for an operation performed on a particular + statement handle. + </para> + + <example><title>Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database</title> + <programlisting role="php"> +<![CDATA[ +<?php +/* Provoke an error -- the BONES table does not exist */ +$dbh->exec("INSERT INTO bones(skull) VALUES ('reagan')"); + +$arr = $dbh->errorInfo(); +if ($arr[0] == PDO_ERR_NOT_FOUND) { + echo "Error: a requested database object does not exist.\n"; + printf("Driver-specific error code: %d\n", $arr[1]); + printf("Driver-specific message: [%s]\n", $arr[2]); +} +?> +]]> + </programlisting> + </example> + &example.outputs; + <screen> +<![CDATA[ +Error: a requested database object does not exist. +Driver-specific error code: -204 +Driver-specific message: [SQLExecute: -204 [IBM][CLI Driver][DB2/NT] +SQL0204N "DB2INST1.BONES" is an undefined name. SQLSTATE=42704 + [SQL State 42S02] (..\pecl\pdo_odbc\odbc_stmt.c:80)] +]]> + </screen> + </refsect1> </refentry>