Probleme avec requete php SELECT
gillesnas84
Messages postés
12
Statut
Membre
-
88av Messages postés 381 Statut Membre -
88av Messages postés 381 Statut Membre -
Bonjour , je debute dans la programmation php et la manipulation des bdd sous mysql.
J'ai récemment developpé une appli qui gere les envois de courriers dans une agence de voyage.
Now je travaille sur un autre projet et j'ai un souci avec l'affichage d'information stockées dans la bdd.
le code de ma requete ci-dessous me renvooi un tableau vide mais il fonctionne quand je donne une valeur constante à l' 'ID'
<?php
require_once "admin/bcpcnx.php";
//fiche indivIDuelle sommaire
$bcpcnx = new mysqli("localhost", "root", "", "bucrepdb");
if ($bcpcnx->connect_errno) {
echo "Echec lors de la connexion à MySQL: (" . $bcpcnx->connect_errno . ") " . $bcpcnx->connect_error;
}
if (!($stmt = $bcpcnx->prepare("SELECT ID , nom, prenom, genre,email,province, ville,statut FROM individu WHERE ID = '".$_GET['ID']."' "))) {
echo "Echec lors de la préparation de la requête : (" . $bcpcnx->errno . ") " . $bcpcnx->error;
}
if (!$stmt->execute()) {
echo "Echec lors de l'exécution de la requête : (" . $stmt->errno . ") " . $stmt->error;
}
if (!($res = $stmt->get_result())) {
echo "Echec lors de la récupération du jeu de résultats : (" . $stmt->errno . ") " . $stmt->error;
$individu = mysqli_fetch_assoc($res);
mysqli_free_result($bcpcnx,$res);
mysqli_close($bcpcnx);
}
//var_dump($res1->fetch_row());
?>
je serai vraiment reconnaissant si quelqu'un pouvais m'aider a ce sujet
J'ai récemment developpé une appli qui gere les envois de courriers dans une agence de voyage.
Now je travaille sur un autre projet et j'ai un souci avec l'affichage d'information stockées dans la bdd.
le code de ma requete ci-dessous me renvooi un tableau vide mais il fonctionne quand je donne une valeur constante à l' 'ID'
<?php
require_once "admin/bcpcnx.php";
//fiche indivIDuelle sommaire
$bcpcnx = new mysqli("localhost", "root", "", "bucrepdb");
if ($bcpcnx->connect_errno) {
echo "Echec lors de la connexion à MySQL: (" . $bcpcnx->connect_errno . ") " . $bcpcnx->connect_error;
}
if (!($stmt = $bcpcnx->prepare("SELECT ID , nom, prenom, genre,email,province, ville,statut FROM individu WHERE ID = '".$_GET['ID']."' "))) {
echo "Echec lors de la préparation de la requête : (" . $bcpcnx->errno . ") " . $bcpcnx->error;
}
if (!$stmt->execute()) {
echo "Echec lors de l'exécution de la requête : (" . $stmt->errno . ") " . $stmt->error;
}
if (!($res = $stmt->get_result())) {
echo "Echec lors de la récupération du jeu de résultats : (" . $stmt->errno . ") " . $stmt->error;
$individu = mysqli_fetch_assoc($res);
mysqli_free_result($bcpcnx,$res);
mysqli_close($bcpcnx);
}
//var_dump($res1->fetch_row());
?>
je serai vraiment reconnaissant si quelqu'un pouvais m'aider a ce sujet
2 réponses
-
Bonjour,
Dans ta requete, ici :
$bcpcnx->prepare("SELECT ID , nom, prenom, genre,email,province, ville,statut FROM individu WHERE ID = '".$_GET['ID']."' ")
Je croit que le $_GET['ID'] peut faire une injection sql :
https://fr.wikipedia.org/wiki/Injection_SQL
Pour éviter ça, regarde ici :
http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/construire-des-requetes-en-fonction-de-variables
------------------------
Aussi, pour selectionner tous les champs, au lieu de les lister, tu peut faire :
$bcpcnx->prepare("SELECT * FROM individu WHERE ID = '".$_GET['ID']."' ")
Au revoir
Si vous avez un calcul à faire, vous pouvez aller sur mon site web... -
Il faudrait tester la requête SQL en l'affichant simplement, pour voir si la variable ID est bien remplie.