Insertion dans la base de données
Résolu
foufita
Messages postés
68
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain42 -
Alain42 -
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
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
A voir également:
- Insertion dans la base de données
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
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
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
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:
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....)
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....)
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
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