J'essaye de comprendre la préparation des requêtes mysql mais j'obtiens des erreurs, je ne sais pas où j'ai foiré.
Le script sans la préparation :
$sql = "
UPDATE Comptes_Utilisateurs SET Mot_de_Passe ='" . md5($clef_activation) . "'
WHERE Adresse_Email = '" . $_POST["TB_Adresse_Email"] . "'
";
$result = $con_base->query($sql);
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
Le script que j'ai essayé mais qui ne fonctionne pas
$TB_Adresse_Email = $_POST["TB_Adresse_Email"];
$result = $con_base->prepare("UPDATE Comptes_Utilisateurs SET Mot_de_Passe ='" . md5($clef_activation) . "'
WHERE Adresse_Email = ?");
$result->execute($TB_Adresse_Email);
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
PDO est un objet qui peut utiliser plusieurs paramètres pour te retourner des erreurs. En l'occurence, le paramètre ATR_ERRMODE renverra toutes les exceptions. Ce sera plus simple de comprendre d'où vient le problème s'il y en a un.
Je te conseil de mettre ce code dans un fichier "db.php" que tu mettras dans un répertoire protégé par un fichier htaccess ou non accessible par les utilisateurs. Il te suffira ensuite de faire appel au fichier avec un require).
ensuite, il te suffit de préparer ta requête comme ceci:
$query = $bdd->prepare("SELECT * FROM ma_table WHERE id = :id, name = :name");
$query->execute([":id" => $id_utilisateur, ":name" => $name]);
le ":id" est un paramètre auquel tu lie une variable lors de l'exécution de ta requête.
Il existe aussi une variante avec des paramètres anonymes tel que :
$query = $bdd->prepare("SELECT * FROM ma_tabble WHERE id = ?, name = ?");
$query->bind_param($id, $name);
$query->execute();
personnellement j'ai l'habitude d'utiliser les paramètres avec le suffixe ":" mais les deux fonctionnent parfaitement.
En espérant avoir pu t'aider!
- Edité par Neberith 26 août 2019 à 1:48:56
La culture, c'est comme la confiture: moins on en a, plus on l'étale.
La culture, c'est comme la confiture: moins on en a, plus on l'étale.
La culture, c'est comme la confiture: moins on en a, plus on l'étale.