[PHP] Requete sql avec virgules

Requete sql avec virgules [PHP] - PHP - Programmation

Marsh Posté le 22-09-2008 à 17:28:14    

Salut  :hello:  
 
Je cherche à inserer des infos utilisateurs dans une base Mysql, dont le contenu d'un champs textarea $details.
J'ai la requête suivante :  
 

Code :
  1. $query = 'INSERT into membres(id,login,details) ';
  2. $query.= 'values(\'\','.$login.','.$details.')';
  3. $insert = mysql_query($query);


j'ai appliqué les htmlentities() à $details
 
Seulement, lorsque $details contient des virgules du style "18 ans, Poker, Sports" , la syntaxe $query se retrouve tronquée à la 1ere virgule, et genere donc une erreur SQL.
 
Quelle est la solution à ce pb ? dois-je utiliser des guillemets plutot que des apostrophes ?
 
merci pour vos reponses.
 
 


---------------
Je sais pas faire de revers coupé
Reply

Marsh Posté le 22-09-2008 à 17:28:14   

Reply

Marsh Posté le 22-09-2008 à 18:11:17    

T'utilises "mysql_query" donc regarde du côté de "mysql_real_escape_string" qui permet de neutraliser le contenu d'une variable pour mysql.
 
T'aurais utilisé "mysqli_query", je t'aurais renvoyé vers le couple "mysqli_prepare"/"mysqli_stmt_*" qui est encore mieux vu qu'il fait automatiquement la bonne neutralisation en fonction du type de donné qu'on indique.
 
Si c'est disponible, à mes yeux le mieux reste quand même PDO qui permet de passer d'une base de donné à une autre sans avoir à modifier son code (tant qu'on ne fait pas de requête spécifique à une base de donnée) Avec PDO, la bonne solution est alors "PDO::prepare" qui est pour ainsi dire l'équivalent PDO de "mysqli_prepare".
 
EDIT : Rajout des liens, donc : voir documentation de php ou recherche sur le forum pour plus d'infos.


Message édité par omega2 le 22-09-2008 à 18:16:05
Reply

Marsh Posté le 22-09-2008 à 19:37:06    

Merci beaucoup pour ton aide :)
 
Je vais me contenter de mysql_real_escape_string.
 
Pour les autres, solutions, ça a l'air un peu plus poussé, moi j'en suis encore resté à la programmation type procédural à l'ancienne quoi :) J'ai un peu peur de l'orienté Objet, j'ai l'impression que c'est ultra compliqué.

Reply

Marsh Posté le 23-09-2008 à 12:39:20    

Je ne sais pas si ça va te rassurer, mais en pratique la programmation objet n'est pas compliqué quand on en a compris les bases.
Par contre, c'est vrai qu'il est généralement plus simple au début de considérer un programme comme une suite d'action.
 
Pour le moment, t'as raison de ne pas chercher à viser trop haut si tu débutes à peine.
 
Pour la solution en mysqli_ , tu peux l'utiliser en procédural si t'as envie et que ces fonctions sont disponible. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed