Exemple de code de transaction MySQL d'opération PHP
Les transactions MySQL sont principalement utilisées pour traiter des données avec des opérations volumineuses et une grande complexité. Par exemple, dans le système de gestion du personnel, si vous supprimez une personne, vous devez supprimer les informations de base de la personne et également supprimer les informations liées à la personne, telles que la boîte aux lettres, les articles, etc. De cette façon, ces opérations de base de donnéesLe relevé constitue une transaction !
Cet article présente principalement la méthode d'exploitation des transactions MySQL par PHP et analyse en détail les caractéristiques ACID sous forme d'exemples. Il a une bonne valeur de référence. Les amis dans le besoin peuvent s'y référer
. Les exemples de cet article décrivent comment PHP gère les transactions MySQL et sont partagés avec vous pour votre référence. La méthode spécifique est la suivante :
De manière générale, les transactions doivent avoir des caractéristiques ACID. Le soi-disant ACID s'écrit avec les premières lettres des quatre mots Atomic (atomicité), Cohérent (cohérence), Isolé (isolement) et Durable (persistance). Prenons « virement bancaire » comme exemple pour expliquer leur signification. :
① Atomicité : Les instructions qui composent une transaction forment une unité logique, et seule une partie de celle-ci ne peut pas être exécutée. Autrement dit, une transaction est la plus petite unité indivisible. Par exemple : lors du processus de virement bancaire, le montant du transfert doit être soustrait d'un compte et ajouté à un autre compte en même temps. Il n'est pas raisonnable de modifier un seul compte.
② Cohérence : la base de données est cohérente avant et après l'exécution du traitement des transactions. Autrement dit, la transaction doit transformer correctement l'état du système. Par exemple : lors du processus de virement bancaire, soit le montant du virement est transféré d'un compte à un autre, soit les deux comptes restent inchangés, et il n'y a pas d'autre situation.
③ Isolement : une transaction n'a aucun impact sur une autre transaction. C'est-à-dire qu'il est impossible pour une transaction de voir une transaction dans un état incomplet. Par exemple, lors d'un virement bancaire, avant que la transaction de transfert ne soit soumise, une autre transaction de transfert ne peut être qu'en attente.
④ Durabilité : Les effets du traitement des transactions peuvent être enregistrés de manière permanente. À l’inverse, les transactions doivent être capables de résister à toutes les pannes, y compris les pannes de serveur, de processus, de communication, de support, etc. Par exemple : lors du processus de virement bancaire, l'état du compte après le virement doit être enregistré.
En PHP, mysqli a bien encapsulé les opérations associées aux transactions mysql. L'exemple suivant :
Le code est le suivant :
$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $mysqli = new mysqli('localhost','root','','DB_Lib2Test'); $mysqli->autocommit(false);//开始事物 $mysqli->query($sql1); $mysqli->query($sql2); if(!$mysqli->errno){ $mysqli->commit(); echo 'ok'; }else{ echo 'err'; $mysqli->rollback(); }
Ici, nous utilisons la série php mysql de fonctions pour effectuer des transactions.
Le code est le suivant :
$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $conn = mysql_connect('localhost','root',''); mysql_select_db('DB_Lib2Test'); mysql_query('start transaction'); //mysql_query('SET autocommit=0'); mysql_query($sql1); mysql_query($sql2); if(mysql_errno ()){ mysql_query('rollback'); echo 'err'; }else{ mysql_query('commit'); echo 'ok'; } // mysql_query('SET autocommit=1'); // mysql_query($sql3);
Notez ici :
MyISAM : ne prend pas en charge les transactions et est utilisé pour les programmes en lecture seule pour améliorer les performances
InnoDB : prend en charge les transactions ACID, les verrous au niveau des lignes et la concurrence
Berkeley DB : prend en charge les transactions
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Raisons courantes pour lesquelles Navicat ne peut pas se connecter à la base de données et à ses solutions: 1. Vérifiez l'état d'exécution du serveur; 2. Vérifiez les informations de connexion; 3. Réglez les paramètres du pare-feu; 4. Configurer l'accès à distance; 5. Dépannage des problèmes de réseau; 6. Vérifier les autorisations; 7. Assurer la compatibilité de la version; 8. Dépannage d'autres possibilités.

Erreurs et solutions courantes Lors de la connexion aux bases de données: nom d'utilisateur ou mot de passe (erreur 1045) Blocs de pare-feu Connexion (erreur 2003) Délai de connexion (erreur 10060) Impossible d'utiliser la connexion à socket (erreur 1042) Erreur de connexion SSL (erreur 10055) Trop de connexions Résultat de l'hôte étant bloqué (erreur 1129)

不同数据库系统添加列的语法为 : MySQL: alter table table_name Ajouter Column_name data_type; postgresql: alter table table_name Add Column Column_name data_type; Oracle: alter table table_name add (chronn_name data_type); sql server: alter alter table_name Add Column_name data__
