<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.pdo.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'pdo.begintransaction.php',
    1 => 'PDO::beginTransaction',
    2 => 'Inicia una transacci&oacute;n',
  ),
  'up' => 
  array (
    0 => 'class.pdo.php',
    1 => 'PDO',
  ),
  'prev' => 
  array (
    0 => 'class.pdo.php',
    1 => 'PDO',
  ),
  'next' => 
  array (
    0 => 'pdo.commit.php',
    1 => 'PDO::commit',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/pdo/pdo/begintransaction.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="pdo.begintransaction" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">PDO::beginTransaction</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.1.0, PHP 7, PHP 8, PECL pdo &gt;= 0.1.0)</p><p class="refpurpose"><span class="refname">PDO::beginTransaction</span> &mdash; <span class="dc-title">
   Inicia una transacción
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-pdo.begintransaction-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>PDO::beginTransaction</strong></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   Desactiva el modo
   autocommit. Mientras el autocommit está desactivado,
   las modificaciones realizadas en la base de datos mediante las instancias
   de los objetos PDO no se aplican hasta que se finaliza la transacción
   llamando a la función <span class="methodname"><a href="pdo.commit.php" class="methodname">PDO::commit()</a></span>.
   La llamada a <span class="methodname"><a href="pdo.rollback.php" class="methodname">PDO::rollBack()</a></span> anulará todas las modificaciones
   realizadas en la base de datos y restablecerá la conexión en modo autocommit.
  </p>
  <p class="para">
   Algunas bases de datos, incluyendo MySQL, ejecutarán automáticamente un COMMIT
   cuando se ejecute una consulta de definición de lenguaje de base de datos (DDL) como
   DROP TABLE o CREATE TABLE dentro de una transacción. Este COMMIT implícito
   impedirá anular otras modificaciones realizadas en esta transacción.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-pdo.begintransaction-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">Esta función no contiene ningún parámetro.</p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-pdo.begintransaction-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Esta función retorna <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en caso de éxito o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si ocurre un error.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-pdo.begintransaction-errors">
  <h3 class="title">Errores/Excepciones</h3>
  <p class="para">
   Se lanza la excepción <span class="classname"><a href="class.pdoexception.php" class="classname">PDOException</a></span> si ya se ha iniciado una transacción o si el controlador no soporta transacciones.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: <span class="simpara">
    Una excepción será emitida incluso si el atributo <strong><code><a href="pdo.constants.php#pdo.constants.attr-errmode">PDO::ATTR_ERRMODE</a></code></strong> no vale
    <strong><code><a href="pdo.constants.php#pdo.constants.errmode-exception">PDO::ERRMODE_EXCEPTION</a></code></strong>.</span></p></blockquote>
 </div>


 <div class="refsect1 examples" id="refsect1-pdo.begintransaction-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Anular una transacción</strong></p>
    <div class="example-contents"><p>
     El siguiente ejemplo inicia una transacción y ejecuta dos consultas
     que modifican la base de datos antes de anular las modificaciones. En MySQL,
     sin embargo, la consulta DROP TABLE validará automáticamente la transacción,
     por lo que ninguna de las modificaciones de la transacción será anulada.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Inicia una transacción, desactivando el auto-commit */<br /></span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">beginTransaction</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">/* Modificación del esquema de la base de datos y de los datos */<br /></span><span style="color: #0000BB">$sth </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">"DROP TABLE fruit"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$sth </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">"UPDATE dessert<br />SET name = 'hamburger'"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Se detecta un error y se anulan las modificaciones */<br /></span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">rollBack</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">/* La conexión a la base de datos está ahora de vuelta en modo auto-commit */<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-pdo.begintransaction-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="pdo.commit.php" class="methodname" rel="rdfs-seeAlso">PDO::commit()</a> - Valida una transacci&oacute;n</span></li>
    <li><span class="methodname"><a href="pdo.rollback.php" class="methodname" rel="rdfs-seeAlso">PDO::rollBack()</a> - Anula una transacci&oacute;n</span></li>
    <li><a href="pdo.transactions.php" class="link">Transacciones y auto-commit</a></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>