Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions reference/pdo/pdoexception.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 7c915c0c28b8e2e4306333c64602ee4800c73754 Maintainer: PhilDaiguille Status: ready -->
<!-- EN-Revision: 3aac0ba2da1e235092086965f74b9855174f9ad1 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<reference xml:id="class.pdoexception" role="exception" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La clase PDOException</title>
Expand Down Expand Up @@ -51,6 +51,9 @@
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:partintro/db:section/db:classsynopsis/db:fieldsynopsis[preceding-sibling::db:classsynopsisinfo[1][@role='comment' and text()='&Properties;'] and (not(@xml:id) or @xml:id != 'class.exception..code')]))"/>

<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.pdoexception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='PDOException'])"/>

<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='Exception'])"/>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='Exception'])"/>
Expand All @@ -75,10 +78,10 @@
<varlistentry xml:id="pdoexception.props.code"><!-- {{{ -->
<term><varname>code</varname></term>
<listitem>
<para>
Código de error <literal>SQLSTATE</literal>. Utilice el método
<methodname>Exception::getCode</methodname> para acceder a él.
</para>
<simpara>
Código de error <literal>SQLSTATE</literal>.
Utilice <methodname>PDOException::getCode</methodname> para acceder a él.
</simpara>
</listitem>
</varlistentry><!-- }}} -->
</variablelist>
Expand All @@ -87,6 +90,8 @@

</partintro>

&reference.pdo.entities.pdoexception;

</reference>
<!-- Keep this comment at the end of the file
Local variables:
Expand Down
138 changes: 138 additions & 0 deletions reference/pdo/pdoexception/getcode.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3aac0ba2da1e235092086965f74b9855174f9ad1 Maintainer: lacatoire Status: ready -->
<refentry xml:id="pdoexception.getcode" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>PDOException::getCode</refname>
<refpurpose>Obtiene el código de error SQLSTATE</refpurpose>
</refnamediv>

<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="PDOException">
<modifier>final</modifier> <modifier>public</modifier> <type class="union"><type>int</type><type>string</type></type><methodname>PDOException::getCode</methodname>
<void/>
</methodsynopsis>
<simpara>
Devuelve el código de la excepción.
Es el método heredado <methodname>Exception::getCode</methodname>,
pero, a diferencia de la mayoría de las demás excepciones, el código suele ser un <type>string</type>.
</simpara>
</refsect1>

<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>

<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
Devuelve el <literal>SQLSTATE</literal> como un <type>string</type>
de cinco caracteres (por ejemplo <literal>"42S02"</literal> o
<literal>"HY000"</literal>), véase <methodname>PDO::errorCode</methodname>.
</simpara>
<simpara>
Si la conexión falla en <methodname>PDO::__construct</methodname>,
devuelve en su lugar el código de error específico del controlador como un <type>int</type>
(por ejemplo <literal>1045</literal> para acceso denegado en MySQL).
</simpara>
<caution>
<simpara>
El parámetro <parameter>code</parameter> de
<methodname>Exception::__construct</methodname> solo acepta un
<type>int</type>, por lo que pasarle este valor al relanzar el error como
una excepción diferente lanza un <exceptionname>TypeError</exceptionname>.
Convertirlo a <type>int</type> hace perder información
(<literal>"HY000"</literal> se convierte en <literal>0</literal>).
En su lugar, pase la excepción original como parámetro
<parameter>previous</parameter>.
</simpara>
</caution>
</refsect1>

<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Ejemplo de <methodname>PDOException::getCode</methodname></title>
<programlisting role="php">
<![CDATA[
<?php
$pdo = new PDO('sqlite::memory:');

try {
$pdo->query('SELECT * FROM missing_table');
} catch (PDOException $e) {
var_dump($e->getCode());
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(5) "HY000"
]]>
</screen>
</example>
<example>
<title>Relanzar una <exceptionname>PDOException</exceptionname></title>
<programlisting role="php">
<![CDATA[
<?php
class DatabaseException extends RuntimeException {}

$pdo = new PDO('sqlite::memory:');

try {
try {
$pdo->query('SELECT * FROM missing_table');
} catch (PDOException $e) {
// Pasar $e->getCode() como código lanzaría un TypeError
throw new DatabaseException('La consulta falló', previous: $e);
}
} catch (DatabaseException $e) {
echo $e->getMessage(), ': ', $e->getPrevious()->getCode(), "\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
La consulta falló: HY000
]]>
</screen>
</example>
</refsect1>

<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><methodname>Exception::getCode</methodname></member>
<member><methodname>Exception::getPrevious</methodname></member>
<member><methodname>PDO::errorCode</methodname></member>
<member><methodname>PDOStatement::errorCode</methodname></member>
<member><methodname>PDO::errorInfo</methodname></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
Loading