SQL Update fout

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yannick Bogaert

Yannick Bogaert

03/01/2012 17:29:37
Quote Anchor link
Hallo allemaal,

zit ergens met een domme fout en vind maar niet wat er mis is.

Het gaat om een sql update:

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
<?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());
?>


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
 
PHP hulp

PHP hulp

25/11/2024 00:43:12
 
- Ariën  -
Beheerder

- Ariën -

03/01/2012 17:31:59
Quote Anchor link
Waarom kopieer je variabelen op lijn 10 t/m 19, je kan ook prima ion je query de $_POST[] variabelen gebruiken.

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 -
 
Joren de Wit

Joren de Wit

03/01/2012 17:32:55
Quote Anchor link
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...
 
Yannick Bogaert

Yannick Bogaert

03/01/2012 17:39:21
Quote Anchor link
at Aar en Joren: Inderdaad ik gebruik het volgende voor de insert te doen maar ben er nog niet helemaal uit hoe je dit dan met een UPDATE doet.

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
<?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());
    }

?>
 
Joren de Wit

Joren de Wit

03/01/2012 17:46:34
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$sql
= "
  UPDATE
    taxi
  SET
    datum = '"
.mysql_real_escape_string($_POST['datum'])."'
    ...
  WHERE
    ...
"
;
?>
 



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.