Page 1 sur 1

INSERT INTO renvoyant des erreurs

Posté : 19 mars 2012, 14:27
par piotrowski-s
Bonjour à tous, ma requête me renvoit des erreurs.
<?php 
$date= date('y-m-d');		
		if (isset($_POST['description']))  { ?><?php
$sql = 'INSERT INTO actions n_doss="'.mysql_real_escape_string($_POST['n_doss']).'", description="'.$_POST['description'].'", date="'.mysql_real_escape_string($date).'"user= "'.mysql_real_escape_string($_SESSION['login']).'" ' ;
                    


mysql_query($sql) or die(__LINE__.mysql_error().$sql);

echo "<h2><p align='center' />données insérées avec succès </h2><br /> <br /> <br /> <br / ><br /><A href=\"javascript:window.close('_blank');\">Vous pouvez fermer cette fenêtre <img src='images/close.png' /></A> </p> ";
?><?php } ?>
je n'arrives pas a savoir pourquoi.

le champ description provient d'un textarea...

Re: INSERT INTO renvoyant des erreurs

Posté : 19 mars 2012, 14:27
par piotrowski-s
l'erreur est la suivante:

Code : Tout sélectionner

234You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'n_doss="110015666223", description=" Un bref résumé concis du' at line 1INSERT INTO actions n_doss="110015666223", description=" Un bref résumé concis du courrier que vous traitez est le bienvenue :) dans le cas ou il s'agirait d'un tiers non identifié n'oubliez pas de noter toutes ses coordonnées et le cas échéant les références internes ", date="12-03-19"user= "stanislas"
mais la coloration syntaxique du code ne renvoi pas d'erreur.

Re: INSERT INTO renvoyant des erreurs

Posté : 19 mars 2012, 14:41
par piotrowski-s
je ne sais pas si c'est utile de le préciser mais mon textarea est géré avec CKEditor

Re: INSERT INTO renvoyant des erreurs

Posté : 19 mars 2012, 15:20
par Mazarini
J'utilise plutot une syntaxe :
INSERT INTO TaTable(col1,col2) VALUES ('val1','val2')

Il doit être possible d'utiliser une syntaxe semblable à un UPDATE (mais je ne connais pas trop)
INSERT INTO TaTable set col1 = 'val1', col2 = 'val2'

A priori, pas de double quote mais des simple. Il est possible qu'il y ai des quotes dans le champs saisi.

Edit : il manque une virgule avant user.

Re: INSERT INTO renvoyant des erreurs

Posté : 19 mars 2012, 17:06
par sirakawa
Je ne sais plus qui a répondu avant moi, mais il a remarqué plusieurs anomalies.
Sur le code imbittable d'origine:
$sql = 'INSERT INTO actions n_doss="'.mysql_real_escape_string($_POST['n_doss']).'", description="'.$_POST['description'].'", date="'.mysql_real_escape_string($date).'"user= "'.mysql_real_escape_string($_SESSION['login']).'" ' ;
tu peux toujours lui faire afficher ŝql par
print "==>$sql<==";
l'examiner, et voir l'erreur, et tester cette chaîne par Phpmyadmin ou autre HeidiSql plus civilisé que myadmin.
Et si tu ne comprends toujours pas poster ici cette chaaîne.
--------
Mais on serait plus à l'aise avec :
$n_doss = mysql_real_escape_string($_POST['n_doss']);
$description = $_POST['description'];
$user = mysql_real_escape_string($_SESSION['login']);
$date = mysql_real_escape_string($date);
$sql = "INSERT INTO actions n_doss= $n_doss, description='$description', date='$date', user= '$user ' ;";
print "$sql";
et surtout la lecture de
http://dev.mysql.com/doc/refman/5.0/fr/insert.html
en contraste avec
http://dev.mysql.com/doc/refman/5.0/fr/update.html
[

Re: INSERT INTO renvoyant des erreurs

Posté : 19 mars 2012, 17:14
par piotrowski-s
j'ai testé et c'est exactement la même qu'avec un update, je n'aurais pas du enlever le SET, mais ça fonctionne avec le INSERT INTO et le SET. Merci :)

Re: INSERT INTO renvoyant des erreurs

Posté : 19 mars 2012, 22:57
par sirakawa
à ceci près que avec insert into truc () values (val1, val2...)
autant de valeurs que de colonnes...
et insert into table () values (); enregistrement vide
ou
insert into dico2 (graphie) values( "zz"), ("zzyy"); qui insère plusieurs enregistrements...

Re: INSERT INTO renvoyant des erreurs

Posté : 20 mars 2012, 08:44
par piotrowski-s
en mon sesn c'est mieux de pouvoir insérer plusieurs enregistrement indépendamment les uns des autres.