Document database handle error methods.

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@173554 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Dan Scott 2004-11-26 20:12:46 +00:00
parent 492aea4f11
commit 017be95eee
2 changed files with 141 additions and 4 deletions

View file

@ -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>

View file

@ -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>