Parse error: syntax error, unexpected ',' in O:\webserver\root\mysql\index.php on line 20

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees van Kempen

Kees van Kempen

26/07/2010 18:38:13
Quote Anchor link
Hallo iedereen,

Bij deze query krijg ik de volgende error:
Quote:
Parse error: syntax error, unexpected ',' in O:\webserver\root\mysql\index.php on line 20


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    $query = '
    INSERT INTO
    `recept` (`naam`, `koste`, `kok`, `ip`, `date`)
    VALUES
    (' . $naam . '','' . $koste . '','' . $kok . '','' . $ip . '','' . $date . ');';


Hoe voorkom ik dat? Is er misschien een andere manier om meerdere value's toe te voegen?

Alvast bedankt, Josaus.
 
PHP hulp

PHP hulp

25/12/2024 06:58:52
 
Mark L

Mark L

26/07/2010 18:51:12
Quote Anchor link
Kijk eens naar de kleurtjes. Vooral van de komma's (in de laatste regel).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    $query
= '
    INSERT INTO
    `recept` (`naam`, `koste`, `kok`, `ip`, `date`)
    VALUES
    ('
. $naam . '','' . $koste . '','' . $kok . '','' . $ip . '','' . $date . ');';
?>
 
Jonathan de Vries

Jonathan de Vries

26/07/2010 18:52:54
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$query = '
INSERT INTO
recept (naam, koste, kok, ip, date)
VALUES
('$naam','$koste','$kok','$ip','$date');
 
Mark L

Mark L

26/07/2010 19:25:04
Quote Anchor link
Jonathan heeft gelijk over de backticks. Hij vergeet alleen de punten tussen de strings en de variabelen te voegen.

Nog een commentaar op Kees: SQL injection! Voor mySQL database, gebruik: mysql_real_escape_string();
 
Erik Rijk

Erik Rijk

26/07/2010 19:28:03
Quote Anchor link
Die van jou gaat ook niet werken Jonathan... variabelen worden nu niet omgezet naar de waarden die ze bevatten.

(' . $naam . '',
Je hebt hier 3 quotes, dat is probleem 1..

Verder zou ik het zo oplossen:

VALUES ('".mysql_real_escape_string($sValue)."') enz..
 
Aad B

Aad B

26/07/2010 20:14:37
Quote Anchor link
Vervang in de tekst van Jonathan de quotes voor dubbelquotes.
Gewijzigd op 26/07/2010 20:14:56 door Aad B
 
Jonathan de Vries

Jonathan de Vries

26/07/2010 20:20:31
Quote Anchor link
Iets te snel getypt daarnet,
Het volgende zou moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$query
= "
INSERT INTO
recept (naam, koste, kok, ip, date)
VALUES
('"
.$naam."','".$koste."','".$kok."','".$ip."','".$date."')";
?>


Verder ben ik het met Mark en Erik eens, let op SQL Injection.
Zorg ervoor dat elke variabel die je invoert netjes mysql_real_escape_string() bevat.
 
Maestro Roboroads

Maestro Roboroads

27/07/2010 06:22:54
Quote Anchor link
Jonathan de Vries op 26/07/2010 20:20:31:
Iets te snel getypt daarnet,
Het volgende zou moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$query
= "
INSERT INTO
recept (naam, koste, kok, ip, date)
VALUES
('"
.$naam."','".$koste."','".$kok."','".$ip."','".$date."')";
?>


Verder ben ik het met Mark en Erik eens, let op SQL Injection.
Zorg ervoor dat elke variabel die je invoert netjes mysql_real_escape_string() bevat.


Ofterwijl:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$query
= "
INSERT INTO
recept (naam, koste, kok, ip, date)
VALUES
('"
.mysql_real_escape_string($naam)."','".mysql_real_escape_string($koste)."','".mysql_real_escape_string($kok)."','".mysql_real_escape_string($ip)."','".mysql_real_escape_string($date)."')";
?>



if($ik == "fout"){
//Corrigeer me ;)
}
Gewijzigd op 27/07/2010 06:24:37 door Maestro Roboroads
 
Bart V B

Bart V B

27/07/2010 08:01:11
Quote Anchor link
Ik ben het met geen een van allen met jullie eens. ;)
Waarom onnodige variabelen aanmaken?
En die datum, even vanuitgaande dat hij hem een registratie datum wil geven kan met NOW() als het een datumveld is.

Ook vraag ik me af of date geen gereserveerd woord is.
EDIT is geen gereserveerd woord..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$query
= " INSERT INTO recept (naam,
                               koste,
                               kok,
                               ip,
                               date
                               )
                               VALUES('"
.mysql_real_escape_string($_POST['naam'])."',
                                      '"
.mysql_real_escape_string($_POST['koste'])."',
                                      '"
.mysql_real_escape_string($_POST['kok'])"',
                                      '"
.mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',
                                      NOW())"
;
?>
Gewijzigd op 27/07/2010 08:09:04 door Bart V B
 
Erik Rijk

Erik Rijk

27/07/2010 10:31:59
Quote Anchor link
Het is erg aannemelijk te denken dat deze gegevens, formuliergegevens zijn.. maar dat staat nergens aangegeven.
 
Bart V B

Bart V B

27/07/2010 10:39:55
Quote Anchor link
@Erik,
Dat het er niet staat is zeer aannemelijk, het zou ook onlogisch zijn.
Want, als het niet niet via een formulier gaat, dan kan je net zo goed die waardes rechtstreeks in je query kunnen zetten. ;) Anders maak je nog steeds onnodige variabelen aan.
 



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.