Salut all,
J'ai un probleme avec une requete preparee qui fonctionne sans probleme, mais que je n'arrive pas a controler quand elle est hors zone.
Je m'explique
Disons que j'ai une table avec 100 enregistrements et une requete sql pour afficher les informations d'1 enregistrement par $val_numid
Alors tout est ok si $val_numid est entre 1 et 100.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $sql = 'SELECT * FROM ' . MA_TABLE . ' WHERE table_id = ?'; $stmt = mysqli_prepare($ConnexionBdD, $sql); mysqli_stmt_bind_param($stmt, 'i', $val_numid); mysqli_stmt_execute($stmt); $leresultat = mysqli_stmt_get_result($stmt); if ($leresultat) { while($row = mysqli_fetch_assoc($leresultat)) { // ici la procedure d'affichage } else { // ici pas de resultat (enfin normalement mais ne viens jamais) } mysqli_stmt_close($stmt);
Mais si je definis $val_numid avec une valeur hors zone (disons 200), je n'ai pas d'erreur car $leresultat n'est pas vide avec ces infos (object(mysqli_result)#6 (5) { ["current_field"]=> int(0) ["field_count"]=> int(41) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) })
Et ca m'affiche une page vierge de donnees (hors template)
Donc ma question : Comment faire pour éviter cela et/ou savoir si $leresultat est bien vide ou pas ?
En vous remerciant par avance.
Partager