beginTransaction();}", "$pdo->commit();" est ouverte normalement ; Vérifiez si la table de base de données existe. Ou problème de connexion ; 3. Utilisez un moteur de stockage qui prend en charge les transactions. Dans MySQL, seuls les moteurs de stockage InnoDB et NDB prennent en charge les transactions."/> beginTransaction();}", "$pdo->commit();" est ouverte normalement ; Vérifiez si la table de base de données existe. Ou problème de connexion ; 3. Utilisez un moteur de stockage qui prend en charge les transactions. Dans MySQL, seuls les moteurs de stockage InnoDB et NDB prennent en charge les transactions.">
Maison > Article > développement back-end > Comment résoudre le problème que PHP ne peut pas appeler commit
La solution pour que PHP ne puisse pas appeler commit est la suivante : 1. Assurez-vous que la transaction PDO "try {$pdo->beginTransaction();}", "$pdo->commit( ) ;"; 2. Vérifiez s'il y a des problèmes de table de base de données ou de connexion ; 3. Utilisez un moteur de stockage qui prend en charge les transactions. Dans MySQL, seuls les moteurs de stockage InnoDB et NDB prennent en charge les transactions.
Le système d'exploitation pour ce tutoriel : système Windows 10, version php8.1.3, ordinateur Dell G3.
L'appel de `commit()` lors de l'utilisation de PHP ne peut pas prendre effet, généralement parce que le mécanisme de gestion des transactions n'est pas utilisé correctement.
Solution :
1. Assurez-vous d'avoir ouvert la transaction AOP.
``` try { $pdo->beginTransaction(); // your database operations } catch (PDOException $e) { $pdo->rollback(); throw $e; } $pdo->commit(); ```
2 Vérifiez s'il y a une table de base de données ou un problème de connexion
3. utilisent le moteur de stockage de transactions pris en charge. Dans MySQL, seuls les moteurs de stockage InnoDB et NDB prennent en charge les transactions.
Impact :
Si l'appel à `commit()` n'est pas valide, cela empêchera la validation de la transaction, ce qui signifie que toutes les modifications apportées à la base de données sera annulé, conduisant à des résultats erronés. Dans le même temps, vous ne pouvez pas garantir la cohérence des données et perdre les avantages offerts par le niveau d’isolation des transactions.
Exemple de code :
L'exemple de code suivant montre comment activer correctement les transactions PDO et valider les modifications à l'aide de `commit()` :
``` <?php try { $dbh = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); $sth = $dbh->prepare('UPDATE users SET email = :email WHERE id = :id'); $sth->bindParam(':id', $id); $sth->bindParam(':email', $email); $id = 1; $email = 'test@example.com'; $sth->execute(); $id = 2; $email = 'test2@example.com'; $sth->execute(); $dbh->commit(); } catch (PDOException $e) { $dbh->rollback(); echo 'Error: ' . $e->getMessage(); } ```
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!