Bonsoir.
La réponse t'es donné dans le message d'erreur, la fonction mysql_real_escape_string() est déprécié, il te faut par exemple utiliser mysqli_real_escape_string() au lieu de mysql_real_escape_string().
Tu as donc juste à remplacer par :
Bonjour,
Voila je rencontre un petit problème avec mon code.
Ce que je fais
Model.php
Ce que je veux
Ce que j'obtiens
Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO :(
5 réponses
@Lartak c'est pas si simple car les fonctions mysqli demandent un $link or il utilise PDO
il n'y a pas d'équivalent de mysql_real_escape_string en PDO (voir ici)
@PKR comme tu utilises déjà une requête préparée, il te suffit d'utiliser les placeholder "$k = ?" et construire un tableau de $v que l'on passe ensuite à la méthode execute
c'est pas si simple car les fonctions mysqli demandent un $link or il utilise PDO
En effet, je me suis tellement habitué à coder en POO, que j'avais un peu oublié ça.
Sinon PKR, quelqu'un d'autre avait eu le même problème que toi et il lui avait été proposé d'utiliser la fonction addslashes à la place de mysql_real_escape_string, voir ici : créer un site de A à Z jour 3 problème mysql_escape_string.
Merci infiniment pour vos réponses Lartak ta fonction addslashes a bien réglé mon problème merci
Tu devrais t'intéresser au pb de l'injection SQL
addslashes n'est plus du tout adapté aux encodages multi-byte comme UTF-8
voir ici le pb lié aux homoglyph