SQL Update fout
zit ergens met een domme fout en vind maar niet wat er mis is.
Het gaat om een sql update:
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
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
<?php
$hostname_request = "localhost";
$database_request = "xxxxx";
$username_request = "xxxxxx";
$password_request = "xxxxxx";
$request = mysql_pconnect($hostname_request, $username_request, $password_request) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_request, $request);
$datum = $_POST['datum'];
$tijd = $_POST['time'];
$from = $_POST['from'];
$to1 = $_POST['to'];
$pax = $_POST['pax'];
$name = $_POST['name'];
$remark = $_POST['remark'];
$auth = $_POST['auth'];
$firma = $_POST['firma'];
$id = $_POST['id'];
if ($_POST['firma'] == '4PL') $to = '[email protected]';
elseif ($_POST['firma'] == 'short distance') $to = '[email protected]';
$sql = "UPDATE taxi SET datum='$datum', tijd='$tijd', van='$from', naar='$to1', pax='$pax', name='$name', remark='$remark', auth='$auth' firma='$firma' WHERE record='$id'";
mysql_query($sql, $request)or die(mysql_error());
?>
$hostname_request = "localhost";
$database_request = "xxxxx";
$username_request = "xxxxxx";
$password_request = "xxxxxx";
$request = mysql_pconnect($hostname_request, $username_request, $password_request) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_request, $request);
$datum = $_POST['datum'];
$tijd = $_POST['time'];
$from = $_POST['from'];
$to1 = $_POST['to'];
$pax = $_POST['pax'];
$name = $_POST['name'];
$remark = $_POST['remark'];
$auth = $_POST['auth'];
$firma = $_POST['firma'];
$id = $_POST['id'];
if ($_POST['firma'] == '4PL') $to = '[email protected]';
elseif ($_POST['firma'] == 'short distance') $to = '[email protected]';
$sql = "UPDATE taxi SET datum='$datum', tijd='$tijd', van='$from', naar='$to1', pax='$pax', name='$name', remark='$remark', auth='$auth' firma='$firma' WHERE record='$id'";
mysql_query($sql, $request)or die(mysql_error());
?>
de fout is:
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 'firma='4PL' WHERE record='1386'' at line 1
Iemand een idee?
alvast bedankt,
Yannick
Zorg er wel voor dat je over deze variabelen de mysql_real_escape_string() functie haalt, want nu ben je behoorlijk hackbaar d.m.v. SQL injection.
Ik gok dat AUTH een reserved word is binnen MySQL en dat je een andere moet gebruiken.
Een goed idee is om wat enters in je query te gooien. Dat maakt zulke foutjes al snel sneller zichtbaar. Zelf ik keek er over heen.
Gewijzigd op 03/01/2012 17:33:52 door - Ariën -
Je mist een komma voor firma in je SQL query. Maar voordat je verder gaat, zou ik eerst wat doen aan beveiliging. SQL injectie is in jouw script een fluitje van een cent. Gebruik altijd mysql_real_escape_string() als je onveilige variabelen (zoals $_POST) wilt gebruiken in een SQL query...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql = "INSERT INTO taxi(datum, uur, van, naar, pax, name, firma, remark, auth) VALUES
(
'" . mysql_real_escape_string($datum) . "',
'" . mysql_real_escape_string($tijd) . "',
'" . mysql_real_escape_string($from) . "',
'" . mysql_real_escape_string($to1) . "',
'" . mysql_real_escape_string($pax) . "',
'" . mysql_real_escape_string($name) . "',
'" . mysql_real_escape_string($firma) . "',
'" . mysql_real_escape_string($remark) . "',
'" . mysql_real_escape_string($auth) . "')";
if (!mysql_query($sql,$request))
{
die('Error: ' . mysql_error());
}
?>
$sql = "INSERT INTO taxi(datum, uur, van, naar, pax, name, firma, remark, auth) VALUES
(
'" . mysql_real_escape_string($datum) . "',
'" . mysql_real_escape_string($tijd) . "',
'" . mysql_real_escape_string($from) . "',
'" . mysql_real_escape_string($to1) . "',
'" . mysql_real_escape_string($pax) . "',
'" . mysql_real_escape_string($name) . "',
'" . mysql_real_escape_string($firma) . "',
'" . mysql_real_escape_string($remark) . "',
'" . mysql_real_escape_string($auth) . "')";
if (!mysql_query($sql,$request))
{
die('Error: ' . mysql_error());
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "
UPDATE
taxi
SET
datum = '".mysql_real_escape_string($_POST['datum'])."'
...
WHERE
...
";
?>
$sql = "
UPDATE
taxi
SET
datum = '".mysql_real_escape_string($_POST['datum'])."'
...
WHERE
...
";
?>