[Réglé] Erreur générale lors d'un insert dans une table

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans cette section.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

[Réglé] Erreur générale lors d'un insert dans une table

Messagepar Jeannotc » 24 Avr 2016 à 22:10

Bonsoir,
J'essaie d'enregistrer des infos dans une table de ma bd
Voici le code employé :
Code: Tout sélectionner
$sql="INSERT INTO ' . up_photos .'";
$sql.='(up_id,up_user,up_filesize,up_titre,up_annee,up_comment,up_filename,up_filedate)';
$sql.= " VALUES ('','$pseudo','$filesize','$titre','$anne','$description','$nomdestination','$date')";
$db->sql_query($sql);


Or je me retrouve avec une erreur générale à propos de sql_query.
Peut-être manque-t-il quelque chose dans ma requête ?
Je ne sais pas trop
Dans le message d'erreur, il y a bien toutes les valeurs qui doivent s'y trouver !
Un petit coup de main svp.
Merci
:lol:
Modifié en dernier par Jeannotc le 26 Avr 2016 à 14:02, modifié 2 fois.
Jeannotc
Posteur néophyte
Posteur néophyte
 
Messages: 63
Enregistré le: 13 Jan 2010 à 07:18

Re: problème avec sql_query

Messagepar FoFa » 24 Avr 2016 à 22:24

Hello

Donne l'erreur stp.
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10592
Enregistré le: 15 Nov 2008 à 18:04
Localisation: Auxonne

Re: problème avec sql_query

Messagepar Jeannotc » 24 Avr 2016 à 22:43

Bonsoir,
Voilà :

SQL ERROR [ mysqli ]

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 '' . up_photos .'(up_id,up_user,up_filesize,up_titre,up_annee,up_comment,up_filen' at line 1 [1064]

SQL

INSERT INTO ' . up_photos .'(up_id,up_user,up_filesize,up_titre,up_annee,up_comment,up_filename,up_filedate) VALUES ('','Jeannot','466266','Machin','2000','Et moi ?','JeannotDSCF1933.JPG','2016-04-24 23:42:48')

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 855
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 193
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 329
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: E:/EasyPHP-DevServer-14.1VC9/data/localweb/Cherioux/reserve/enreg_photo.php
LINE: 85
CALL: phpbb\db\driver\factory->sql_query()

Merci
:D
Jeannotc
Posteur néophyte
Posteur néophyte
 
Messages: 63
Enregistré le: 13 Jan 2010 à 07:18

Re: problème avec sql_query

Messagepar FoFa » 24 Avr 2016 à 22:49

Pourquoi up_photos est-il en minuscules ?


C'est quoi le contenu des lignes 80 à 90 ?
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10592
Enregistré le: 15 Nov 2008 à 18:04
Localisation: Auxonne

Re: problème avec sql_query

Messagepar Jeannotc » 24 Avr 2016 à 23:03

FoFa a écrit:Pourquoi up_photos est-il en minuscules ?


C'est quoi le contenu des lignes 80 à 90 ?

Bonsoir,
Je l'ai mis en minuscule,car sur une autre page, lorsque j'avais mis le nom de la table en majuscule, cela fonctionnait en local, mais pas en ligne !
Ligne 80 à 86 :
Code: Tout sélectionner
if (move_uploaded_file($file['tmp_name'],$repertoireDestination.$nomdestination))
{
echo 'jusque là c\'est bon <br />';	
$sql="INSERT INTO ' . up_photos .'(up_id,up_user,up_filesize,up_titre,up_annee,up_comment,up_filename,up_filedate)";
$sql.= " VALUES ('','$pseudo','$filesize','$titre','$anne','$description','$nomdestination','$date')";
$db->sql_query($sql);
}


Derrière, j'avais mis un message pour indiquer que l'enregistrement était réalisé, mais cela s'arrête avant !
:D
Jeannotc
Posteur néophyte
Posteur néophyte
 
Messages: 63
Enregistré le: 13 Jan 2010 à 07:18

Re: Merci de modifier le titre du sujet afin qu'il soit plus explicite.

Messagepar Steph » 24 Avr 2016 à 23:23

Salut,

Ton titre n'est pas assez explicite, merci de le modifier :wink:
Avatar de l’utilisateur
Steph
Administrateur
Administrateur
 
Messages: 18445
Enregistré le: 29 Déc 2008 à 15:48
Localisation: Alsace / Bas-Rhin / France

Re: problème avec sql_query

Messagepar soda » 25 Avr 2016 à 08:53

Jeannotc a écrit:Je l'ai mis en minuscule,car sur une autre page, lorsque j'avais mis le nom de la table en majuscule, cela fonctionnait en local, mais pas en ligne !

Si c'est une variable alors il manque un $ devant et tu n'as pas besoin d'utiliser l'opérateur de concaténation ('.') puisque tu es toujours dans ta chaine délimitée par tes guillemets, et les apostrophes sont inutiles.

Si ta table se nomme réellement up_photos alors il faut utiliser $sql="INSERT INTO up_photos";
soda
Posteur expérimenté
Posteur expérimenté
 
Messages: 354
Enregistré le: 25 Déc 2006 à 11:55
Localisation: Sur mon cheval blanc

Re: Erreur générale lors d'un insert dans une table

Messagepar pierredu » 25 Avr 2016 à 09:56

Si tu utilises des guillemets doubles pour borner ta chaîne, il ne faut pas interrompre avec des guillemets simples.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1107
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: problème avec sql_query

Messagepar Jeannotc » 25 Avr 2016 à 17:33

soda a écrit:Si c'est une variable alors il manque un $ devant et tu n'as pas besoin d'utiliser l'opérateur de concaténation ('.') puisque tu es toujours dans ta chaine délimitée par tes guillemets, et les apostrophes sont inutiles.

Si ta table se nomme réellement up_photos alors il faut utiliser $sql="INSERT INTO up_photos";

Bonjour,
Tu parles d'un $ devant , Mais devant quoi ?
up_photos est le nom de la table et le fait de mettre ou ne pas mettre les guillemets ne change rien au résultat.
Si je reprends la liste des erreurs, il n'y a pas le fait qu'il ne trouverai pas la table (sinon cela serait dit) j'ai déjà eu le cas !
pierredu a écrit:Si tu utilises des guillemets doubles pour borner ta chaîne, il ne faut pas interrompre avec des guillemets simples.

J'ai essayé sans utiliser les guillemets double, dans ce cas, il me dit que la variable up_id est vide, ce qui est normal puisqu'il s’agit de l'index qui s'auto-incremente !
Merci à tous les 2 de vous être penchés sur mon problème.
:D
Jeannotc
Posteur néophyte
Posteur néophyte
 
Messages: 63
Enregistré le: 13 Jan 2010 à 07:18

Re: Erreur générale lors d'un insert dans une table

Messagepar pierredu » 25 Avr 2016 à 20:35

Mets un var_dump ou ce que tu veux à la fin de la production de ta chaîne d'interrogation et regarde ce que tu obtiens réellement.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1107
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: Erreur générale lors d'un insert dans une table

Messagepar Jeannotc » 26 Avr 2016 à 00:28

pierredu a écrit:Mets un var_dump ou ce que tu veux à la fin de la production de ta chaîne d'interrogation et regarde ce que tu obtiens réellement.

Bonsoir,
si je mets le var_dump juste avant $db->sql_query($sql); j’obtiens ceci :
INSERT INTO ' . up_photos .'(up_id,up_user,up_filesize,up_titre,up_annee,up_comment,up_filename,up_filedate) VALUES ('','Jeannot','466266','Machin','2000','Et moi ?','JeannotDSCF1933.JPG','2016-04-24 23:42:48'

C'est à dire ce qu'il y a dans le message d'erreur.
On peut constater que toutes les variables sont bien renseignées.
Par ailleurs, tout au long de mon script, je vérifie par un echo que la variable est bien renseignée, ce qui est le cas.
Mais ce qui m'étonne le plus c'est que dan le message d'erreur il est dit :
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

et si j'en crois mon traducteur (car moi et l'anglais on a jamais fait très bon ménage) que je n'ai pas le droit d'utiliser la syntaxe !
Bizarre non ?
:x
Jeannotc
Posteur néophyte
Posteur néophyte
 
Messages: 63
Enregistré le: 13 Jan 2010 à 07:18

Re: Erreur générale lors d'un insert dans une table

Messagepar FoFa » 26 Avr 2016 à 00:43

Cela donne quoi si tu remplaces :
Code: Tout sélectionner
$sql="INSERT INTO ' . up_photos .'(up_id,up_user,up_filesize,up_titre,up_annee,up_comment,up_filename,up_filedate)";
$sql.= " VALUES ('','$pseudo','$filesize','$titre','$anne','$description','$nomdestination','$date')";


par ceci :
Code: Tout sélectionner
$sql="INSERT INTO up_photos (up_user,up_filesize,up_titre,up_annee,up_comment,up_filename,up_filedate)";
$sql.= " VALUES ('$pseudo','$filesize','$titre','$anne','$description','$nomdestination','$date')";


P.S.: tu utilises les sessions phpBB ?
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10592
Enregistré le: 15 Nov 2008 à 18:04
Localisation: Auxonne

Re: Erreur générale lors d'un insert dans une table

Messagepar pierredu » 26 Avr 2016 à 07:04

La modif proposée par Fofa est précisément d'enlever les guillemets simples.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1107
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Re: Erreur générale lors d'un insert dans une table

Messagepar Jeannotc » 26 Avr 2016 à 07:53

Fofa a écrit:
Code: Tout sélectionner
$sql="INSERT INTO up_photos (up_user,up_filesize,up_titre,up_annee,up_comment,up_filename,up_filedate)";
$sql.= " VALUES ('$pseudo','$filesize','$titre','$anne','$description','$nomdestination','$date')";


P.S.: tu utilises les sessions phpBB ?

Bonjour,
Oui, j'utilise les sessions phpbb.
Cette proposition a fonctionné !
Donc j'en conclu qu'avec $db->sql_query il ne faut pas mettre la colonne de l'index auto-incrementé comme on le fait habituellement avec mysql_query !
Je vais faire plusieurs enregistrements pour voir si cela fonctionne bien et si tout va bien, je viendrai clore le sujet.
Merci de votre aide à tous !
:D
Jeannotc
Posteur néophyte
Posteur néophyte
 
Messages: 63
Enregistré le: 13 Jan 2010 à 07:18

Re: Erreur générale lors d'un insert dans une table

Messagepar pierredu » 26 Avr 2016 à 08:04

Pour la valeur vide d'un champ à incrément automatique, c'est comme tu veux, soit tu le mentionnes dans la liste et tu mets une chaîne vide, soit tu ne le mentionnes pas et tu ne mets rien.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1107
Enregistré le: 29 Mai 2011 à 05:49
Localisation: Paris

Suivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité