Problème d'insertion

0z0z Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -  
0z0z Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   35
 
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   Statut Membre Dernière intervention   5
 
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