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 :

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Bon soit, passons . 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?