Rechercher : dans
Par :

Insertion dans la base de données

Dernière réponse le 3 sep 2007 à 15:32:28 foufita, le 1 sep 2007 à 12:19:02 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « insertion dans la base de données » dans :
Sauvegarde restauration base de données Mysql VoirL'article suivant va présenter la manière la plus facile pour sauvegarder et restaurer les bases de données Mysql. Sauvegarde Pour sauvegarder une base de données existante il est conseillé de créer un dump. Pour dumper toutes les bases de...
Bases de données - Introduction VoirQu'est-ce qu'une base de données ? Une base de données (son abréviation est BD, en anglais DB, database) est une entité dans laquelle il est possible de stocker des données de façon structurée et avec le moins de redondance possible. Ces données...
Connexion à la base de données avec JDBC VoirConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la...
Bases de données - Utilisation de formulaires VoirUtilisation de formulaires Afin d'exploiter les bases de données, il faut fournir une interface à l'utilisateur lui permettant de visualiser des données en fonction de certains critères. Pour cela il existe un outil : les formulaires. Un formulaire...

1

Alain42, le 1 sep 2007 à 14:14:22

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

Configuration: Windows XP
Firefox 2.0.0.6

Répondre à Alain42

2

foufita, le 3 sep 2007 à 09:36:10

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

Configuration: Windows 2000
Firefox 2.0.0.6

Répondre à foufita

3

 Alain42, le 3 sep 2007 à 15:32:28

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....)
Configuration: Windows XP
Firefox 2.0.0.6

Répondre à Alain42