Problème d'insertion

Fermé
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 - 10 mars 2010 à 11:55
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 - 10 mars 2010 à 12:06
Bonjour,

Je travaille sur un site internet et j'ai un problème d'insertion dans ma base de données.
Enfaite je récupère les valeurs d'une table pour les mettre dans une autre table. Mais si le champs contient un apostrophe, ca "coupe" la requête en quelque sorte.

J'ai entendu parlé de la fonction mysql_real_escape_string() mais je ne sais pas trop comment l'utiliser.

Voilà mon insertion :
$query="INSERT INTO catalogues_commandes (".implode(", ",$champs).") VALUES ('".implode("', '",$valeurs)."');";
sql_query($query);
$ref_avoir=mysql_insert_id();
A voir également:

2 réponses

bloodchecker Messages postés 339 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 29 février 2012 35
10 mars 2010 à 11:57
1) essaie de protéger tes nom de tables avec des``
2) fait le implode avant et ajoute le résultat ca t'évitera de t'emmener dans la concaténation
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
10 mars 2010 à 12:06
Juste avant l'insertion j'ai : $valeurs=array_map("mysql_real_escape_string",$valeurs);
Mais ca n'a pas l'air de marcher.

Sinon je récupère mes noms de tables de cette façon :
$query="SELECT * FROM catalogues_commandes WHERE numero_piece=$numero_piece";
$tab_facture=valeur_requete($query,2);   //valeur_requete permet de récupérer la contenu de la requête

$ref_facture=$tab_facture['ref'];
$ref_parent=$tab_facture['ref_parent'];
//print_pre($tab_facture);exit;
//print_pre ($tab_commande);exit;
$champs=array();
$valeurs=array();
foreach($tab_facture as $champ=>$valeur) {
	$champs[$champ]=$champ;
	$valeurs[$champ]=$valeur;
}



Alors comment protéger le nom des tables ?
0