Heim > Backend-Entwicklung > PHP-Tutorial > Wie führt man MySQL-Transaktionen mit PHP durch?

Wie führt man MySQL-Transaktionen mit PHP durch?

WBOY
Freigeben: 2024-06-02 14:17:03
Original
431 Leute haben es durchsucht

Die Ausführung von MySQL-Transaktionen in PHP gewährleistet Datenkonsistenz und -integrität. Zu den Schritten gehören: Herstellen einer Datenbankverbindung, Öffnen einer Transaktion, Ausführen einer Abfrage, Senden der Transaktion (alle Abfragen erfolgreich), Zurücksetzen der Transaktion (jede Abfrage schlägt fehl). Praktischer Fall: Wenn in der Warenkorbanwendung eine Abfrage fehlschlägt, wird die Transaktion zurückgesetzt Zurück und der Warenkorb und die Produkte werden rückgängig gemacht. Wenn alle Abfragen erfolgreich sind, wird die Transaktion festgeschrieben und die Änderungen dauerhaft gespeichert.

如何使用 PHP 执行 MySQL 事务?

Wie führe ich MySQL-Transaktionen mit PHP durch?

Eine Transaktion ist eine Reihe von Vorgängen in der Datenbank. Entweder werden alle erfolgreich übermittelt oder alle können nicht zurückgesetzt werden. Die Verwendung von Transaktionen in PHP gewährleistet Datenkonsistenz und -integrität.

Schritte:

  1. Datenbankverbindung herstellen: Verwenden Sie die Funktion mysqli_connect(), um eine Verbindung zur MySQL-Datenbank herzustellen. mysqli_connect() 函数建立与 MySQL 数据库的连接。
  2. 开启事务:使用 mysqli_begin_transaction() 函数开启事务。
  3. 执行查询:执行所有必要的查询。例如,更新表或插入数据。
  4. 提交事务:如果所有查询成功,使用 mysqli_commit() 函数提交事务。这将永久保存更改。
  5. 回滚事务:如果任何查询失败,使用 mysqli_rollback()
Transaktion starten

: Verwenden Sie die Funktion mysqli_begin_transaction(), um die Transaktion zu starten.

Abfrage ausführen

: Führen Sie alle erforderlichen Abfragen aus. Zum Beispiel das Aktualisieren einer Tabelle oder das Einfügen von Daten.

Transaktion festschreiben🎜: Wenn alle Abfragen erfolgreich sind, verwenden Sie die Funktion mysqli_commit(), um die Transaktion festzuschreiben. Dadurch werden die Änderungen dauerhaft gespeichert. 🎜🎜🎜Transaktion zurücksetzen🎜: Wenn eine Abfrage fehlschlägt, verwenden Sie die Funktion mysqli_rollback(), um die Transaktion zurückzusetzen. Dadurch werden alle innerhalb der Transaktion vorgenommenen Änderungen rückgängig gemacht. 🎜🎜🎜🎜Praktisches Beispiel: 🎜🎜🎜Stellen Sie sich eine einfache Warenkorbanwendung vor, bei der Benutzer Artikel in ihren Warenkorb legen. Der folgende Code zeigt, wie Transaktionen verwendet werden, um diese Funktionalität zu erreichen: 🎜
// 建立数据库连接
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 开启事务
$conn->begin_transaction();

// 插入新项目到购物车表中
$sql = "INSERT INTO cart (product_id, user_id, quantity) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("iii", $productId, $userId, $quantity);
$stmt->execute();

// 更新产品表中的库存
$sql = "UPDATE products SET stock = stock - ? WHERE product_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $quantity, $productId);
$stmt->execute();

// 检查是否有任何查询失败
if ($stmt->error) {
    // 回滚事务
    $conn->rollback();
    echo "添加商品到购物车失败!";
    exit();
}

// 提交事务
$conn->commit();
echo "商品已成功添加到购物车!";
Nach dem Login kopieren
🎜 Wenn im obigen Beispiel eine Abfrage (Einfügen in die Warenkorbtabelle oder Aktualisieren der Produkttabelle) fehlschlägt, wird die Transaktion zurückgesetzt und die Änderungen im Warenkorb übernommen wird rückgängig gemacht. Wenn alle Abfragen erfolgreich sind, wird die Transaktion festgeschrieben und die Änderungen am Warenkorb und an den Produkttabellen bleiben erhalten. 🎜

Das obige ist der detaillierte Inhalt vonWie führt man MySQL-Transaktionen mit PHP durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage