Bonjour,
Je suis en train de passer un site plateforme de mysql à PDO avec plus de 1000 requêtes à la base de données.
Ce site utilise pas mal de requêtes multitables dans lesquelles deux tables peuvent posséder des champs avec des noms identiques.
Ayez aussi à l'idée, que ces requêtes multitables peuvent, dans certain cas, faire appel plusieurs fois à la même table, et donc avec des noms de données forcément identiques.
Voila comment on s'en sortait avec mysql sur une requête faisant appel à 2 fois la même table :
Pour accéder aux données on faisait par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $requete = "SELECT t1.data, t2.data FROM table t1"; $requete = $requete . "LEFT JOIN table t2 ON t2.id2=t1.id1 WHERE ..."; $resultat = mysql_query($requette) $num_rows = mysql_num_rows($resultat)
Avec PDO, j'ai voulu retranscrire cette requette avec des fetch(). pour accéder aux données, j'avais pensé faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for($row=0;$row<$num_rows;$row++) { data1 = mysql_result($resultat,$row,'t1.data'); data2 = mysql_result($resultat,$row,'t2.data'); }
Mais PDO me refuse l'écriture t1.data et ne reconnait pas les data concernées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $resultat = $bdd->query($requette) while($row=$resultat->fetch()) { $data1 = $row['t1.data'] $data2 = $row['t2.data'] }
Alors faut il que l'utilisation de PDO nous force à intervenir dans les requettes sql ?
En faisant par exemple
Merci de vos réponses éclairées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $requete = "SELECT t1.data as data1, t2.data as data2 from table1 t1"; $requete = $requete . "LEFT JOIN table2 t2 ON t2.id=t1.id WHERE t1.id = NB"; $resultat = $bdd->query($requete) while($row=$resultat->fetch()) { $data1 = $row['data1'] $data2 = $row['data2'] }
Zakuli
Partager