Unknown column 'Dion' in 'where clause'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dion

Dion

18/03/2007 14:48:00
Quote Anchor link
Hallo,
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)
PHP script in nieuw venster Selecteer het PHP script
1
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."";
    }


 ?>
 
PHP hulp

PHP hulp

24/11/2024 02:34:35
 
Marvin S

Marvin S

18/03/2007 14:49:00
Quote Anchor link
probeer is:

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
<?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."";
    }


 ?>



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
 
Dion

Dion

18/03/2007 14:53:00
Quote Anchor link
HET WERKT!:D heel erg bedankt. ik zie dat je een ; hebt toegevoegd. kan je misschien uitleggen waarom hij het eerst neit deed:P?
 
Jan Koehoorn

Jan Koehoorn

18/03/2007 14:59:00
Quote Anchor link
Omdat je deed:

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.
 
Marvin S

Marvin S

18/03/2007 15:01:00
Quote Anchor link
nou kijk die ; aan het eind is eigenlijk gewoon voor de netheid
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM gebruikers WHERE schermnaam  = ".$_POST['schermnaam']."


als je de query zonder php bekijkt zou er staan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM gebruikers WHERE schermnaam  =

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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM gebruikers WHERE schermnaam  = ' '  



en tot slot weer met de php erin verwerkt krijg je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM gebruikers WHERE schermnaam  = '".$_POST['schermnaam']."'
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
 
Dion

Dion

18/03/2007 15:15:00
Quote Anchor link
ahh bedankt! ik snap het:D
 
Ponzi

Ponzi

18/03/2007 15:48:00
Quote Anchor link
@ Dion: mag ik je er op wijzen dat je script enorm onveilig is ;-) .
 



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.