Unknown column 'Dion' in 'where clause'
ik ben bezig met een inlog schermpje maar als ik dingen via een form verstuur bijvorobeeld de schermnaam krijg ik de melding
Unknown column 'Dion' in 'where clause'
ik heb al gezocht op google maar ben er niet uitgekomen.
Zou iemand mij willen helpen?
Mijn inlog script
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
require ('config.php');
require ('style.css');
$query = mysql_query("SELECT * FROM gebruikers WHERE schermnaam = ".$_POST['schermnaam']."") or die (mysql_error());
while ($obj = mysql_fetch_object($query)) {
$naam = htmlspecialchars($obj->naam);
$id = htmlspecialchars($obj->id);
echo "Yooo ".$naam."";
}
?>
require ('config.php');
require ('style.css');
$query = mysql_query("SELECT * FROM gebruikers WHERE schermnaam = ".$_POST['schermnaam']."") or die (mysql_error());
while ($obj = mysql_fetch_object($query)) {
$naam = htmlspecialchars($obj->naam);
$id = htmlspecialchars($obj->id);
echo "Yooo ".$naam."";
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
require ('config.php');
require ('style.css');
$query = mysql_query("SELECT * FROM gebruikers WHERE schermnaam = '".$_POST['schermnaam']."';") or die (mysql_error());
while ($obj = mysql_fetch_object($query)) {
$naam = htmlspecialchars($obj->naam);
$id = htmlspecialchars($obj->id);
echo "Yooo ".$naam."";
}
?>
require ('config.php');
require ('style.css');
$query = mysql_query("SELECT * FROM gebruikers WHERE schermnaam = '".$_POST['schermnaam']."';") or die (mysql_error());
while ($obj = mysql_fetch_object($query)) {
$naam = htmlspecialchars($obj->naam);
$id = htmlspecialchars($obj->id);
echo "Yooo ".$naam."";
}
?>
je kan in die query geen php zetten dus moet je eerst de query weer 'sluiten' dan je php code en dan weer openen en dan weer query
dus dan krijg je:
SELECT *
FROM gebruikers
WHERE schermnaam = ' " .$_POST['schermnaam']. " '
;
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
HET WERKT!:D heel erg bedankt. ik zie dat je een ; hebt toegevoegd. kan je misschien uitleggen waarom hij het eerst neit deed:P?
WHERE schermnaam = " . $_POST['schermnaam'] . "
terwijl het:
WHERE schermnaam = '" . $_POST['schermnaam'] . "'
moest zijn. Omdat er bij jou geen enkele quotes stonden denkt MySQL dat het om een veldnaam gaat.
daarmee zeg je in SQL dat de query is afgelopen.. volgens mij
kan het in MySql ook zonder hoor maar voor de netheid zet ik
hem er eigenlijk ALTIJD bij..
in jou query stond dit:
als je de query zonder php bekijkt zou er staan:
en zoals je dus ziet.. die POST die achter schermnaam komt te staan is geen veldnaam en dus moet het tussen ' ' in sql
dus dan zou je krijgen
en tot slot weer met de php erin verwerkt krijg je:
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
ahh bedankt! ik snap het:D
@ Dion: mag ik je er op wijzen dat je script enorm onveilig is ;-) .