Un bout de code simple qui ne marche pas

Résolu
Signaler
Messages postés
66
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
5 mai 2009
-
Messages postés
66
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
5 mai 2009
-
Voici le premier code que j'ai fais utilisant sql :

   include "config.php";


   $connect = mysql_connect($serveur,$nick,$pass) or die ("erreur de connexion");
   mysql_select_db('veilleux',$connect) or die ("erreur de connexion base");


   $description = $_POST['description'];
   $nom = $_POST['nom'];
   $username = $forum_user['username'];


   mysql_query("INSERT INTO ud_files('file_id', 'file_description', 'file_nom', 'file_par') VALUES('', '$description', '$nom', '$username')");

SURPRISE... Il ne marche pas (bien sur c'étais trops beau pour être vrais) et je ne sais pas pourquoi (je n'ai pas d'erreur mais il n'écrit rien dans la bdd).

Pouvez vous m'aider svp?

14 réponses

Messages postés
66
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2010

Hello

pour écarter le problème du ' utilise la fonction addslashes() pour les champs du type varchar, text, ...

Un peu de doc

http://fr.php.net/addslashes
http://fr.php.net/manual/fr/function.stripslashes.php

Bonne soirée
Messages postés
10
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
23 novembre 2007

Salut, je suis débutant mais, je pense qu'il y a un problème au niveau de ta requête, essaie en écrivant de cette maniè



$sql = "INSERT  INTO ud_files (file_id, file_description, file_nom, file_par)
            VALUES ('', '$description', '$nom', '$username') " ;
 
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;

Autrement, diverses questions pour essayer de localiser le problème.

1) As tu essayé ta requête dans mysql ?
2) As tu essayé de faire un echo de tes variables description nom et username pour voir si elles ressortaient ce que tu voulaient.
3) Au niveau de ton file_id , est-ce un champ que tu as mis en auto-incrément ?

voilà essaie déjà de test ceci et dit moi si ça marche, sinon réponds aux questions ^^ bonne journée
Messages postés
10
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
23 novembre 2007

A revoir ta requête, j'ai également l'impression qu'elle n'est simplement pas executée, à vérifier.
Messages postés
7
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
18 juillet 2007

le mieux c'est de faire
INSERT  INTO  ud_files(file_id, file_description, file_nom, file_par)  values('".$description."', '".$nom."', '".$username."') " ;
Messages postés
10
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
23 novembre 2007

Oui ceci dit, tu oublie le champ file_id, et qui plus est il faudrait déja trouver la source de son erreur et je ne pense pas qu'elle soit liée au type de syntaxe que tu préconise (certainement à juste titre d'ailleurs ^^)
Messages postés
7
Date d'inscription
mercredi 18 juillet 2007
Statut
Membre
Dernière intervention
18 juillet 2007

non li bien le champs file_id y es c'est sur sa reque de base qu'il ne la pas mis c'est pour sa  =p après effectivement la syntaxe est peut etre pas le problème
J'ai aussi ce problème mes requete d'insertion ne marchent pas cela peut venir de la base de données notamment si il a mi des index et des foreign key mais étant donné que la sa n'insère rien le pb vien surement de la syntaxe ou alors des name de ses champs qui sont différents de ceux de la requete.
Messages postés
10
Date d'inscription
jeudi 26 octobre 2006
Statut
Membre
Dernière intervention
23 novembre 2007

Non mais tu as spécifié 4 champs a remplir et dans le values que trois, la valeurs correspondante à sont file_id est values('')
D'où je me pose la question, est-ce un champ auto-incrément ?? auquel cas sa requête se transformerait en
Insert INTO ud_files (file_description, file_nom, file_par)  values('".$description."', '".$nom."', '".$username."')  (pour reprendre ta syntaxe)
Messages postés
207
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
24 juillet 2007

oui c'est une possibilité a consulté donc sa bdd =)
Messages postés
75
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
14 janvier 2009
33
mysql_query(bla bla) or die(mysql_error());

C'est souvent pratique pour savoir pourquoi ca ne marche pas
Messages postés
66
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
5 mai 2009

Oui,
Voici ce que j'ai :
   You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''file_description', 'file_nom', 'file_par') VALUES('', 'Nom de l'image', 'Ceci est une image', 'MasterOfQuebec' at line 1
Messages postés
75
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
14 janvier 2009
33
Pas d'antislash devant l'apostrophe dans 'Nom de l'image' ??
Messages postés
66
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
5 mai 2009

Non sa le fais toujours.
Messages postés
75
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
14 janvier 2009
33
Il faudrait que je vois la requete, fais ca stp :

$req = "INSERT INTO ud_files('file_id', 'file_description',
'file_nom', 'file_par') VALUES('', '$description', '$nom',
'$username')";

echo $req;

mysql_query($req);

Si une de tes variable $description, $nom, $username contient le caractere ' , ta requete n'est plus valide.
Messages postés
66
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
5 mai 2009

Merci Beaucoup.
Je vais le savoir maintenent .