<?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 => 'de',
  ),
  'this' => 
  array (
    0 => 'pdo.rollback.php',
    1 => 'PDO::rollBack',
    2 => 'Macht eine Transaktion r&uuml;ckg&auml;ngig (Rollback)',
  ),
  'up' => 
  array (
    0 => 'class.pdo.php',
    1 => 'PDO',
  ),
  'prev' => 
  array (
    0 => 'pdo.quote.php',
    1 => 'PDO::quote',
  ),
  'next' => 
  array (
    0 => 'pdo.setattribute.php',
    1 => 'PDO::setAttribute',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/pdo/pdo/rollback.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="pdo.rollback" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">PDO::rollBack</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::rollBack</span> &mdash; <span class="dc-title">Macht eine Transaktion rückgängig (Rollback)</span></p>

 </div>

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

  <p class="para rdfs-comment">
   Macht die aktuelle durch <span class="methodname"><a href="pdo.begintransaction.php" class="methodname">PDO::beginTransaction()</a></span>
   gestartete Transaktion rückgängig.
  </p>
  <p class="para">
   Falls die Datenbank auf den Autocommit-Modus eingestellt war, wird er
   wiederhergestellt, nachdem die Transaktion zurückgesetzt wurde.
  </p>
  <p class="para">
   Wenn im Rahmen einer Transaktion eine DDL- (Database Definition Language)
   Anweisung wie DROP TABLE oder CREATE TABLE ausgeführt wird, geben einige
   Datenbanken, darunter auch MySQL, ein implizites COMMIT aus. Durch das
   implizite COMMIT wird verhindert, dass weitere im Rahmen der Transaktion
   vorgenommene Änderungen rückgängig gemacht werden können.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-pdo.rollback-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">Diese Funktion besitzt keine Parameter.</p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-pdo.rollback-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt bei Erfolg <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> zurück. Bei einem Fehler wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-pdo.rollback-errors">
  <h3 class="title">Fehler/Exceptions</h3>
  <p class="para">
   Wenn es keine aktive Transaktion gibt, wird eine
   <span class="classname"><a href="class.pdoexception.php" class="classname">PDOException</a></span> ausgelöst.
  </p>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: <span class="simpara">Eine Exception wird auch dann ausgelöst, wenn das Attribut <strong><code><a href="pdo.constants.php#pdo.constants.attr-errmode">PDO::ATTR_ERRMODE</a></code></strong> nicht <strong><code><a href="pdo.constants.php#pdo.constants.errmode-exception">PDO::ERRMODE_EXCEPTION</a></code></strong> ist.</span></p></blockquote>
 </div>


 <div class="refsect1 examples" id="refsect1-pdo.rollback-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 Rückgängigmachen einer Transaktion</strong></p>
    <div class="example-contents"><p>
     Im folgenden Beispiel wird eine Transaktion gestartet und es werden zwei
     Anweisungen ausgeführt, die die Datenbank verändern, bevor die Änderungen
     rückgängig gemacht werden. Bei MySQL wird die Transaktion jedoch durch
     die Anweisung DROP TABLE automatisch bestätigt, sodass keine der
     Änderungen dieser Transaktion rückgängig gemacht wird.
    </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">/* Starten einer Transaktion, wobei Autocommit deaktiviert wird */<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">/* Ändern des Datenbankschemas und der Daten */<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">/* Erkennen eines Fehlers und Zurücknehmen der Änderungen */<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">/* Die Datenbankverbindung ist nun wieder im Autocommit-Modus */<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

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


 <div class="refsect1 seealso" id="refsect1-pdo.rollback-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="pdo.begintransaction.php" class="methodname" rel="rdfs-seeAlso">PDO::beginTransaction()</a> - Startet eine Transaktion</span></li>
    <li><span class="methodname"><a href="pdo.commit.php" class="methodname" rel="rdfs-seeAlso">PDO::commit()</a> - Best&auml;tigt eine Transaktion</span></li>
    <li><a href="pdo.transactions.php" class="link">Transaktionen und Autocommit</a></li>
   </ul>
  </p>
 </div>


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