[PHP+MYSQL] INSERT query doet het niet

Pagina: 1
Acties:

  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 07-05 09:39
Na een uurtje staren en zoeken alhier kom ik er niet uit waarom onderstaande query het niet doet.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
//haal variabelen op
$User=$_POST["name"];
$Datefirst=$_POST["datefirst"];
$catmain=$_POST["catmain"];
$catsub=$_POST["catsub"];
$prio=$_POST["prio"];
$title=$_POST["title"];
$desc=$_POST["desc"];
$sql = "INSERT INTO cases (UserID, title, desc, catmain, catsub, datefirst, prio)
        VALUES ($userid, '$title', '$desc', $catmain, $catsub, '$Datefirst', $prio)";
echo "$sql <br>";
$result = mysql_query($sql) or die(mysql_error());

dit resulteert in
code:
1
2
3
4
INSERT INTO cases (UserID, title, desc, catmain, catsub, datefirst, prio) VALUES
(1, 'Titel', 'Omschrijving probleem', 2, 7, '27-02-04 12:34', 2) 
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 'desc, catmain, catsub, datefirst, prio) VALUES (1, 'Titel',

Hier is de SQL db (uitdraai uit MySQL-Front)
code:
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `cases` (
  `Id` int(6) unsigned NOT NULL auto_increment,
  `UserID` int(3) default NULL,
  `title` varchar(200) default NULL,
  `desc` text,
  `timespent` time default NULL,
  `catmain` int(2) default NULL,
  `catsub` int(2) default NULL,
  `datefirst` varchar(20) default NULL,
  `prio` int(2) default NULL,
  PRIMARY KEY  (`Id`)
) TYPE=MyISAM;

Ik heb de quotes om m'n int waardes al weggehaald en toegevoegd, maar dat geeft geen sjoege
Misschien is het heel simpel, maar nu ff geen idee..

Alvast bedankt.

[ Voor 10% gewijzigd door GdeKeijzer op 27-02-2004 12:30 ]

Niet omdat het moet, maar omdat het kan....


Verwijderd

hmm near desc

is desc niet een gereserveerd woord? desc word namelijk in sql al gebruikt, het lijkt me handig om voor desc een andere naam te kiezen.

[ Voor 48% gewijzigd door Verwijderd op 27-02-2004 12:33 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
DESC is idd een reserved word.
Je kan er backticks rond zetten, maar imo is het beter om andere namen te kiezen.

https://fgheysels.github.io/


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19-05 09:52

thomaske

» » » » » »

Verwijderd schreef op 27 februari 2004 @ 12:32:
hmm near desc

is desc niet een gereserveerd woord? desc word namelijk in sql al gebruikt, het lijkt me handig om voor desc een andere naam te kiezen.
inderdaad. Of je escaped het woord met backticks (`desc`) (net zoals in je create table script)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 07-05 09:39
Tering... zo simpel... (oftewel, het werkt nu)

Thanx... daar keek ik inderdaad dus helemaal overheen..

DB

[ Voor 13% gewijzigd door GdeKeijzer op 27-02-2004 12:35 ]

Niet omdat het moet, maar omdat het kan....


  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 29-04 09:11
En als je nou geen id invult, maar '' (het is tenslotte een autoincrement veld .. mysql bepaalt zelf wel wat voor id 't is :)) ?

Verder zie ik zo gauw niet waar het fout kan gaan.
Ik zet zelf alles 'values' tussen quotes, zeker bij gebruik van variabelen om te voorkomen dat de query mislukt doordat er bv. een var leeg is (hoe onmogelijk 't ook soms kan zijn :))

edit:
Te laat :)

[ Voor 9% gewijzigd door PhoeniX- op 27-02-2004 12:40 ]


Verwijderd

ja, desc is een gereserveerd woord,
vervang door een ander variabele naam en het hoort te werken

voor meer reserved words , zoek document SQL-92
Pagina: 1