Insertion dans la base de données

Résolu/Fermé
foufita Messages postés 68 Date d'inscription mercredi 29 août 2007 Statut Membre Dernière intervention 10 mars 2014 - 1 sept. 2007 à 12:19
 Alain42 - 3 sept. 2007 à 15:32
salut, je suis nouvelle dans le domaine de develloppement web.
j'ai un probleme d'insertion des donndées ds la bd .qd le formulaire contient le caractére ' l'insertion ne ce fait pas et s'affiche une erreur
sql. s'il vous plait aider mois pour résoudre ce probléme.
et merci d'avance

3 réponses

Salut,

Si ta valeur provient d'un formulaire, ne passes pas par la fonction stripslashes, il faut laisser l'échapement \ que php mets devant les ' pour éviter justement ce genre de pb.

Sinon mets nous le texte de ta requette
1
S@lut,

est ce qu'il ya une fonction js qui remplace le ' par \' ?

OUI c'est addslashes(........)

Ta requette est bizarre

$req="insert into `actualites` (`titre_act_fr`,`date_act`,`texte_act_fr`,`photo`,`titre_act_ang`,`texte_act_ang`)
values (".$C_valeurs.")";

Je mettrai plutot:
$req="INSERT INTO actualites (titre_act_fr,date_act,texte_act_fr,photo,titre_act_ang,texte_act_ang)
VALUES (".$C_valeurs.")";


et otes les ' pour la table et les champs, en plus tes ' sont penchés a l'envers tu as du faire un copier/ coller d'une commande SQL, tapes les plutot au clavier


et mets les INSERT etc en majuscules c'est plus facile à lire donc a debugger.

Une autre suggestion: tu concatènes $C_valeurs pour avoir tous tes champs, mais es tu sure d'avoir les champs dans le bon ordre.

Tu aurais pu parcourir ton $tab et par if(substr($k,0,nombre_lettres_champ)=="nom_du_champ_act_fr") { $tab2[act_fr']=$v;}

etc.. et dans VALUES('".$tab2['act_fr']."','".$tab2['date_act']."', etc....)
1
foufita Messages postés 68 Date d'inscription mercredi 29 août 2007 Statut Membre Dernière intervention 10 mars 2014 8
3 sept. 2007 à 09:36
ma requete fonctionne tres bien l'orsque le formulaire ne contient pas '
c'est la requete:
function nouvelleActualites ($tab){
$C_valeurs="";
$date=$tab['année'].'-'.$tab['mois'].'-'.$tab['jour'];
$tab['titre-fr'].='\','.'\''.$date.'';
foreach ($tab as $k=> $v)
{
if(($k!="submit")&&($k!="mois")&&($k!="année")&&($k!="jour")&& ($k!="aj_x") && ($k!="aj_y"))
$C_valeurs.="'".$v."',";
}
$C_valeurs=substr($C_valeurs,0,-1);
//echo $C_valeurs;
$req="insert into `actualites` (`titre_act_fr`,`date_act`,`texte_act_fr`,`photo`,`titre_act_ang`,`texte_act_ang`)
values (".$C_valeurs.")";
//echo $req;
$res=mysql_query($req) or die ('erreur sql'.mysql_error());
echo Redirection ("actualite.php");
}
est ce qu'il ya une fonction js qui remplace le ' par \' ?
merci beaucoup Alain
0