SQL syntax error

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yannick Bogaert

Yannick Bogaert

24/12/2011 18:25:02
Quote Anchor link
Hallo allemaal,

heb een simpel INSERT gemaakt maar telkens krijg
ik een syntax fout en na 2 uur staren zie ik het nog altijd
niet.

Iemand een idee of iemand die ziet waar het fout loopt?

De foutmelding is:

Error: 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 'from, to, payment, specials, transport, auth ) VALUES ( 'bed', 'be', 'ANR', '0' at line 1

en dit is de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
require_once('./Connections/request.php');

$crewcode = $_POST["crewcode"];
$crewname = $_POST["crewname"];
$hotel = $_POST["hotel"];
$from = $_POST["from"];
$to= $_POST["to"];
$payment = $_POST["payment"];
$specials = $_POST["specials"];
$transport = $_POST["transport"];
$auth = $_POST["auth"];

$sql = "INSERT INTO hotel( crewcode, crewname, hotel, from, to, payment, specials, transport, auth ) VALUES
        (
'"
. mysql_real_escape_string($crewcode) . "',
'"
. mysql_real_escape_string($crewname) . "',
'"
. mysql_real_escape_string($hotel) . "',
'"
. mysql_real_escape_string($from) . "',
'"
. mysql_real_escape_string($to) . "',
'"
. mysql_real_escape_string($payment) . "',
'"
. mysql_real_escape_string($specials) . "',
'"
. mysql_real_escape_string($transport) . "',
'"
. mysql_real_escape_string($auth) . "')";
    if (!mysql_query($sql,$request))
    {

    die('Error: ' . mysql_error());
    }
      
?>


de request.php is correct met db, user en paswoord.

Alvast bedankt,

Yannick
 
PHP hulp

PHP hulp

05/11/2024 11:44:58
 
Noppes Homeland

Noppes Homeland

24/12/2011 18:32:05
Quote Anchor link
raadpleeg het lijstje van gereserveerde woorden en je weet wat er aan de hand is.

Voor de rest zullen we het maar niet hebben over:
- hoe je een form post dient af te handelen
- hoe je dan controleerd en valideerd
- dat je geen overbodige variabelen aan moet maken
- dat je mysql_real_escape alleen binnen het sql-statement moet gebruiken en nergens anders
- dat die geen fatsoenlijk foutafhandeling is
- dat if (!mysql_query($sql,$request)) in principe ook niet een correcte manier van evaluatie is
- dat het overzichtelijker is als je je queries gewoon netjes uitschrijft, enters zijn niet verboden
- dat require de () niet behoeft
 
Bartje Jansen

Bartje Jansen

25/12/2011 14:12:06
Quote Anchor link
"from" en "to" zijn gereserveerde woorden in SQL, deze mag je dus niet gebruiken voor bv. tabel- en kolomnamen. Verzin een betere naam en jouw probleem is voor eens en voor altijd opgelost.

Ps. Er zijn nog veel meer gereserveerde woorden, voor MySQL kun je deze lijst gebruiken:
http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

Pps. Er zijn mensen die roepen dat je backticks ` moet gebruiken, dat is geen aanrader omdat dit vroeg of laat weer ergens fout gaat. Met goede namen krijg je nooit problemen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.