Latest web development tutorials
×

PHP Kurs

PHP Kurs PHP Kurze Einführung PHP installieren PHP Grammatik PHP Variable PHP echo/print PHP Datentypen PHP Konstante PHP Schnur PHP Die Betreiber PHP If...Else PHP Switch PHP Feld PHP Sortieren eines Array PHP Superglobals PHP While Verkehr PHP For Verkehr PHP Funktion PHP Magische Variablen PHP Namespaces PHP Objektorientiert

PHP Form

PHP Form PHP Formularauthentifizierung PHP Form - Erforderliche Felder PHP Form - Überprüfung E-Mail und URL PHP Komplette Formularinstanz PHP $_GET Variable PHP $_POST Variable

PHP Erweiterte Tutorial

PHP Mehrdimensionale Arrays PHP Datum PHP enthalten PHP Datei PHP Datei-Upload PHP Cookie PHP Session PHP E-mail PHP Sicherheit E-mail PHP Error PHP Exception PHP Filter PHP Erweiterte Filter PHP JSON

PHP 7 Neue Funktionen

PHP 7 Neue Funktionen

PHP Datenbank

PHP MySQL Kurze Einführung PHP MySQL Verbindung PHP MySQL Erstellen einer Datenbank PHP MySQL Erstellen Sie eine Datentabelle PHP MySQL einfügen von Daten PHP MySQL Legen Sie mehrere Daten PHP MySQL Prepared Statements PHP MySQL Lesen Sie Daten PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX Kurze Einführung AJAX PHP AJAX Datenbank AJAX XML AJAX Echtzeitsuche AJAX RSS Reader AJAX Abstimmung

PHP Referenzhandbuch

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Bildverarbeitung PHP RESTful

PHP PDO Angelegenheiten und auto-commit

PHP PDO-Referenzhandbuch PHP PDO - Referenzhandbuch

Nun verbunden über PDO ging vor Beginn der Abfrage, müssen Sie zuerst verstehen, wie PDO ist Angelegenheiten zu verwalten.

Transaktionsunterstützung vier Eigenschaften (ACID):

  • Atomicity (Unteilbarkeit)
  • Konsistenz (Konsistenz)
  • Isolation (Isolation)
  • Persistent (Haltbarkeit)

Noch einfacher ausgeführt alle Operationen in einer Transaktion, auch eine schrittweise Umsetzung, sondern auch die Sicherheit auf die Datenbank angewendet zu gewährleisten, und nicht rechtzeitig Störungen von anderen Verbindungen eingereicht werden.

Transaktionsvorgänge können auch auf Wunsch automatisch widerrufen werden (noch nicht vorgelegt vorausgesetzt), die es einfacher macht Fehler in einem Skript zu behandeln.

Die Transaktion wird in der Regel durch eine Reihe von Veränderungen "savings" gemacht und dann in Wirkung kommen und umgesetzt werden; Vorteile, dies zu tun ist die Effizienz dieser bereitzustellen kann stark verändert werden.

Mit anderen Worten, können Transaktionen Ihre Skripte schneller und potentiell robuster zu machen (Sie müssen sie trotzdem sie korrekt verwenden, um davon zu profitieren).

Leider unterstützt nicht jede Datenbank-Transaktionen, also, wenn Sie zuerst die Verbindung zu öffnen, PDO erfordert so genannte "auto-commit" Betriebsmodus.

Auto-Commit-Modus bedeutet, dass, wenn die Datenbankunterstützung, jede Abfrage ausführen ihre eigene implizite Transaktion besitzt, wenn die Datenbank keine Transaktionen unterstützt, nein.

Wenn Sie eine Transaktion benötigen, müssen Sie das PDO :: begintransaction () -Methode zu starten verwenden. Wenn die zugrunde liegenden Treiber keine Transaktionen unterstützt, eine Ausnahme PDOException werfen (unabhängig davon, welche Art der Fehlerbehandlung Einstellungen, dann ist dies ein schwerwiegender Fehler Bedingung).

Sobald die Transaktion verfügbar PDO :: commit () oder PDO :: rollback () abgeschlossen ist, auf den Transaktionscode in Abhängigkeit erfolgreich ausgeführt wird.

Hinweis: PDO nur , ob die Transaktionsverarbeitungsfähigkeit in der Treiberschicht Inspektion. Wenn einige Laufzeitbedingung bedeutet, dass eine Transaktion nicht zur Verfügung steht, und der Datenbankdienst akzeptiert eine Anforderung, die Transaktion zu initiieren, PDO :: begintransaction () wird immer noch TRUE zurück, und keine Fehler. Versuchen Sie, die Transaktion mit der MySQL-Datenbank MyISAM-Tabellen ist ein gutes Beispiel.

Wenn das Skript beendet oder die Verbindung ist, geschlossen zu werden, wenn es nicht eine abgeschlossene Transaktion, wird PDO automatisch die Transaktion rückgängig zu machen. Diese Sicherheitsmaßnahme hilft Inkonsistenzen zu vermeiden, in das Script unerwartet beendet wird - wenn nicht explizit die Transaktion fest, dann ist die Annahme falsch irgendwo ist, so dass die Rollback durchgeführt wird, die Datensicherheit zu gewährleisten.

Hinweis: Nur eine Transaktion starten PDO :: begintransaction () später, kann sie automatisch zurückgerollt passieren. Wenn Sie manuell eine Abfrage, eine Transaktion zu starten, kann der PDO nicht wissen, so dass, wenn nötig, kann nicht rückgängig gemacht werden.

In einer Transaktion ausgeführt Batch:

Im folgenden Beispiel an, dass Sie eine Reihe von Einträgen für die neuen Mitarbeiter erstellen, weisen eine ID 23 ist. Zusätzlich zu den Basisdaten Registrierung Person, sondern müssen auch Sie sein Gehalt zu erfassen.

Beide Updates sind abgeschlossen ist sehr einfach, aber durch das PDO :: begintransaction Schließen () und PDO :: commit () Aufruf ist es möglich, dass, bevor die Änderungen zu gewährleisten, andere Menschen können diese Änderungen nicht zu sehen.

Wenn ein Fehler auftritt, blockiert man für alle Änderungen seit der Transaktion wurde wieder von Anfang an aufgerollt wird, und gibt eine Fehlermeldung aus.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2', 
      array(PDO::ATTR_PERSISTENT => true));
  echo "Connected\n";
} catch (Exception $e) {
  die("Unable to connect: " . $e->getMessage());
}

try {  
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();
  $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  $dbh->exec("insert into salarychange (id, amount, changedate) 
      values (23, 50000, NOW())");
  $dbh->commit();
  
} catch (Exception $e) {
  $dbh->rollBack();
  echo "Failed: " . $e->getMessage();
}
?>

Ist das nicht zu Änderungen in der Transaktion begrenzt, es kann komplexe Abfragen ausgeben Daten zu extrahieren, sondern auch Änderungen und Abfrage mit, dass die Informationen zu bauen, wenn die Transaktion aktiv ist, können Sie, dass andere Menschen können in die laufende Operation keine Änderungen vornehmen sicherstellen können.


PHP PDO-Referenzhandbuch PHP PDO - Referenzhandbuch