Bonjour,
je débute avec PDO ainsi qu'avec php tout court et je n'arrive pas à tester si une requête s'est correctement exécutée :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // connexion $connexion = new PDO('mysql:host='.DB_serveur.';port='.DB_port.';dbname='.DB_base, DB_user, DB_mdp); // requete preparee $prepare = $connexion->prepare('SELECT id, titre FROM categorie WHERE niveau = :niveau AND actif = 1 AND lien = :categorie'); $prepare->execute(array(':niveau' => $niveau, ':categorie' => $categorie)); // execution
La si j'affiche ce que l'exécution renvoie et que la requête soit bonne ou mauvaise, ça fait toujours 1
Pourtant dans la doc, il est écrit :
Bon soit, passons
Valeurs de retour
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
. Je n'ai pas vraiment trop d'autre choix que de continuer. Retournement d'un résultat improbable sous forme d'objet.
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $lignes = $prepare->fetch(PDO::FETCH_OBJ);
La si j'affiche $lignes ça me renvoie soit l'objet, soit rien du tout (false ?) que je peux tester comme ceci :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if ($lignes !== FALSE) { echo 'tadam'; }
Ça reste moche mais ça marche. Ce que je ne parviens pas à saisir, c'est :
-pourquoi il n'est pas possible de tester si execute() renvoie un résultat et de même pour query()?
J'ai vu qu'il y avait un mode erreur PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING. ainsi qu'un mode exception PDO::ERRMODE_EXCEPTION. Est ce que ça peut me permette de tester plus proprement?
Bref, comment vous faites?
Partager