Bonjour,
Je suis actuellement en train de développer une petite application en PHP avec des accès à une base de données MySQL.
Dans le but de faire les choses assez proprement, j'ai décidé d'utiliser PDO avec toutes ses petites subtilités (requêtes préparées et gestion des transactions).
J'ai donc lu le manuel du PDO de Php (PDO) et j'ai essayé de me pencher sur le fonctionnement des transactions.
J'étais déjà au courant que cette technique permettait de garantir la cohérence de la base de données (lorsqu'on applique plusieurs modifications successives sur les tables de la base, par exemple), mais j'ai pu lire ailleurs que ça pouvait aider à gérer les accès concurrents (par exemple, on ne peut pas modifier les lignes d'une table qui sont déjà en train d'être modifiées).
J'en suis venu à me demander si, lors de l'exécution d'une requête SQL "SELECT", l'initialisation d'une transaction était nécessaire.
Je me doute bien que ça n'a pas d'intérêt pour ce qui est de garantir l'intégrité de la base de données (aucune modification n'étant réalisée) mais je me demandais si ça pouvait empêcher l'accès aux données étant déjà en cours de modifications ou si les systèmes de gestion de base de données le faisaient automatiquement.
Petit exemple :
J'attends avec impatience vos explications.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $dbh->beginTransaction(); //Exécution d'un SELECT $dbh->query('SELECT * FROM maTable'); $dbh->commit();
Merci.
Partager