Unknown clolum in 'where clause'
Bij het opvragen van gegevens van een database stuit ik op het volgende probleem. Het volgende script
werkt goed:
werkt goed:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
// -----------------variabelen initialiseren-----------------------
$db = mysql_connect("localhost", "root", "")
or die("Kan niet verbinden: " . mysql_error());
$klasse = $_POST["klasse"];
$jaar = (int) $_POST["jaar"];
//---------------even kijken of ze goed zijn doorgekomen------------
echo $klasse;
echo $jaar;
//------------------------------------------------------------------
$dbnaam = "ttbase";
$query="SELECT RES, VOLLNAAM, NAT, MERK, TIJD1, GEM1, TIJD2, GEM2
FROM hoofdtabel
WHERE ((hoofdtabel.CAT)= $klasse) And ((hoofdtabel.JAAR)= $jaar)
ORDER BY (hoofdtabel.RES) ASC;";
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
//-------------------einde initialisatie----------------------
De variabelen die met $_POST zijn doorgekomen, worden keurig verwerkt, en dmv de HTML code verder op wordt een keurige lijst gproduceerd. Beide variabelen komen uit dezelfde tabel [hoofdtabel] waaruit de query zijn gegevens moet halen.
Het volgende script lijkt hier op:
[code]<?php
// -----------------variabelen initialiseren-----------------------
$db = mysql_connect("localhost", "root", "")
or die("Kan niet verbinden: " . mysql_error());
$rijder = $_POST["naam"];
//-------controleren of naam goed is doorgegeven-----
echo $rijder;
//---------------------------------------------------
$dbnaam = "ttbase";
$query=
"SELECT RES, VOLLNAAM, NAT, MERK, PT, JAAR, KLASSE2
FROM hoofdtabel
WHERE ((hoofdtabel.NAAM) = $rijder)";
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
//-------------------einde initialisatie----------------------
Hier wordt óók een variabel met $_POST doorgegeven, alleen komt die variable uit een andere tabel [allerijders]. Hij komt goed door, maar als de naam bijv. 'Hofkamp' is, dan komt de volgende foutmelding:
Unknown colums 'Hofkamp' in where clause
Wie heeft enig idee hoe dat komt, en hoe ik dit moet aanpakken?
Ik ben erg nieuwsgierig!
Kees Hofkamp
// -----------------variabelen initialiseren-----------------------
$db = mysql_connect("localhost", "root", "")
or die("Kan niet verbinden: " . mysql_error());
$klasse = $_POST["klasse"];
$jaar = (int) $_POST["jaar"];
//---------------even kijken of ze goed zijn doorgekomen------------
echo $klasse;
echo $jaar;
//------------------------------------------------------------------
$dbnaam = "ttbase";
$query="SELECT RES, VOLLNAAM, NAT, MERK, TIJD1, GEM1, TIJD2, GEM2
FROM hoofdtabel
WHERE ((hoofdtabel.CAT)= $klasse) And ((hoofdtabel.JAAR)= $jaar)
ORDER BY (hoofdtabel.RES) ASC;";
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
//-------------------einde initialisatie----------------------
De variabelen die met $_POST zijn doorgekomen, worden keurig verwerkt, en dmv de HTML code verder op wordt een keurige lijst gproduceerd. Beide variabelen komen uit dezelfde tabel [hoofdtabel] waaruit de query zijn gegevens moet halen.
Het volgende script lijkt hier op:
[code]<?php
// -----------------variabelen initialiseren-----------------------
$db = mysql_connect("localhost", "root", "")
or die("Kan niet verbinden: " . mysql_error());
$rijder = $_POST["naam"];
//-------controleren of naam goed is doorgegeven-----
echo $rijder;
//---------------------------------------------------
$dbnaam = "ttbase";
$query=
"SELECT RES, VOLLNAAM, NAT, MERK, PT, JAAR, KLASSE2
FROM hoofdtabel
WHERE ((hoofdtabel.NAAM) = $rijder)";
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
//-------------------einde initialisatie----------------------
Hier wordt óók een variabel met $_POST doorgegeven, alleen komt die variable uit een andere tabel [allerijders]. Hij komt goed door, maar als de naam bijv. 'Hofkamp' is, dan komt de volgende foutmelding:
Unknown colums 'Hofkamp' in where clause
Wie heeft enig idee hoe dat komt, en hoe ik dit moet aanpakken?
Ik ben erg nieuwsgierig!
Kees Hofkamp
Gewijzigd op 29/01/2011 22:06:01 door Kees Hofkamp
Gesponsorde koppelingen:
ga verder...
-- te laat , zie post boven mij --
Gewijzigd op 29/01/2011 22:01:57 door Jurrian Nijland
Verder is je code vatbaar voor SQL-injections.
Dank! Het werkt. Maar..., waarom hoeven er in het 1e script géén komma's omheen?
En: wat zijn SQL-injctions?
(Ik ben een beginner hoor..)
Kees
En: wat zijn SQL-injctions?
(Ik ben een beginner hoor..)
Kees



