Mysqli_real_escape_string() et mysqli_last_insert()

Résolu/Fermé
smsagnon Messages postés 15 Date d'inscription lundi 25 avril 2016 Statut Membre Dernière intervention 6 octobre 2016 - Modifié par smsagnon le 8/06/2016 à 14:42
smsagnon Messages postés 15 Date d'inscription lundi 25 avril 2016 Statut Membre Dernière intervention 6 octobre 2016 - 16 juin 2016 à 17:47
Bonjour je rencontre un probleme en utilisant la fnction mysqli_real_escape_string().
il s'affiche l'erreur suivant


voici le code jutilise
// connexion a la BDD
try{
$bdd=new PDO('mysql:host=localhost;dbname=nafere;charset=utf8;','root','');
$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
die('erreur'.$e->getMessage());
}

//fonction de securisation
function securite($valeur){
$valeur=htmlsepcialchars($valeur);
$valeur=htmlentities($valeur);
$valeur=trim($valeur);
$valeur=stripslashes($valeur);
return ($valeur);
}
$nom=securite($_POST['pseudo']);
$email=securite($_POST['email']);
$pass=securite($_POST['pass']);

// et la le probleme quand j'utiliser la fonction mysqli_real_escape_string() sur $pass il s'affcihe l'erreur precedent;
$pass2=mysqli_real_escape_string($bdd,$pass);



plus loin en j'ai besoin d'utiliser l'id du membre qui vien de s'inscrit(je veut pas lui demandr de se reconnectera fin d'avoi l'id)
du coup ds ma documentaion la fonction que j'ai trouve est:mysqli_last_insert()
elle aussi m'affiche la meme erreur:


voici le code jutilise
$_SESSION['user_id']=mysqli_last_insert($bdd);<code php>

1 réponse

diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 854
Modifié par diablo13800 le 8/06/2016 à 14:49
Bonjour,

Si je lis bien l'erreur, votre fonction nécéssite un objet du type " mysqli" comme premier paramètre. Or votre BDD est un objet de type PDO.
Afin de faire un échappement vous pouvez utiliser soit la fonction prepare()/execute() de pdo qui évite tout injection dans une base Soit Utilise PDO->quote($string) qui fait sensiblement la même chose que mysqli_real_escape

Pour ce qui est de Lastinsert. Celui de PDO vous retourne directement l'id de la derniere insertion.
PDO-> lastInsertId();
1
smsagnon Messages postés 15 Date d'inscription lundi 25 avril 2016 Statut Membre Dernière intervention 6 octobre 2016
16 juin 2016 à 17:47
merci ça marche tres bien
0