Insertion dans la base de données

Résolu
foufita Messages postés 73 Statut Membre -  
 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
Configuration: Windows 2000
Firefox 2.0.0.6

3 réponses

  1. Alain42
     
    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
  2. Alain42
     
    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
  3. foufita Messages postés 73 Statut Membre 8
     
    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