SQL syntax error
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)
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
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());
}
?>
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
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
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.