Maison >développement back-end >tutoriel php >Comment effectuer des transactions MySQL en utilisant PHP ?

Comment effectuer des transactions MySQL en utilisant PHP ?

WBOY
WBOYoriginal
2024-06-02 14:17:03427parcourir

L'exécution de transactions MySQL en PHP garantit la cohérence et l'intégrité des données. Les étapes comprennent : L'établissement d'une connexion à la base de données L'ouverture d'une transaction L'exécution d'une requête La soumission de la transaction (toutes les requêtes réussissent) L'annulation de la transaction (toute requête échoue) Cas pratique : Dans l'application de panier d'achat, si une requête échoue, la transaction sera reportée retour et le panier et les produits seront annulés. Les modifications apportées au tableau si toutes les requêtes réussissent, la transaction est validée, enregistrant les modifications de manière permanente.

如何使用 PHP 执行 MySQL 事务?

Comment effectuer des transactions MySQL en utilisant PHP ?

Une transaction est une série d'opérations dans la base de données, soit toutes sont soumises avec succès, soit toutes ne parviennent pas à être annulées. L'utilisation de transactions en PHP garantit la cohérence et l'intégrité des données.

Étapes :

  1. Établir une connexion à la base de données : Utilisez la fonction mysqli_connect() pour établir une connexion à la base de données MySQL. mysqli_connect() 函数建立与 MySQL 数据库的连接。
  2. 开启事务:使用 mysqli_begin_transaction() 函数开启事务。
  3. 执行查询:执行所有必要的查询。例如,更新表或插入数据。
  4. 提交事务:如果所有查询成功,使用 mysqli_commit() 函数提交事务。这将永久保存更改。
  5. 回滚事务:如果任何查询失败,使用 mysqli_rollback()
Démarrer la transaction

 : utilisez la fonction mysqli_begin_transaction() pour démarrer la transaction.

Execute Query

 : exécutez toutes les requêtes nécessaires. Par exemple, mettre à jour une table ou insérer des données.

Commit transaction🎜 : Si toutes les requêtes réussissent, utilisez la fonction mysqli_commit() pour valider la transaction. Cela enregistrera les modifications de manière permanente. 🎜🎜🎜Rollback transaction🎜 : si une requête échoue, utilisez la fonction mysqli_rollback() pour annuler la transaction. Cela annulera toutes les modifications apportées au sein de la transaction. 🎜🎜🎜🎜Exemple pratique : 🎜🎜🎜Considérons une application de panier d'achat simple dans laquelle les utilisateurs ajoutent des articles à leur panier. Le code suivant montre comment utiliser les transactions pour obtenir cette fonctionnalité : 🎜
// 建立数据库连接
$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 "商品已成功添加到购物车!";
🎜 Dans l'exemple ci-dessus, si une requête (insertion dans la table du panier ou mise à jour de la table des produits) échoue, la transaction sera annulée et les modifications dans le panier sera annulé. Si toutes les requêtes réussissent, la transaction est validée et les modifications apportées au panier et aux tables de produits sont conservées. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn