2016-07-28 9 views
0

Ich habe eine Datenbank mit einer Zeile namens "username". Ich brauche den Wert einer anderen Reihe auf den Benutzernamen in Abhängigkeit zu zeigen, die angemeldet ist, dies zu tun, ich habe das folgende Skript.Beim Ausführen der Abfrage ist ein Fehler aufgetreten [Unbekannte Spalte 'test' in 'where clause']

$db = new mysqli('', '', '', ''); 

if($db->connect_errno > 0){ 
    die('Unable to connect to database [' . $db->connect_error . ']'); 
} 

$sql = <<<SQL 
    SELECT * FROM `users` WHERE username = $username 
SQL; 

if(!$result = $db->query($sql)){ 
    die('There was an error running the query [' . $db->error . ']'); 
} 

while($row = $result->fetch_assoc()){ 
    $text_cli = $row['text_cli']; 
    $text_trad = $row['text_trad']; 
} 

Und der Wert von $username zuvor gespeichert.

Und schließlich:

<div id="text_cli"><?php echo $text_trad ?></div> 
<div id="text_cli"><?php echo $text_cli ?></div> 

Aber ich bekomme diese Fehlermeldung: Es ist ein Fehler aufgetreten, die Abfrage [Unknown column 'test' in 'where clause'] ausgeführt wird.

"Test" ist ein gefälschter Benutzername, der erstellt wurde, um den Code zu testen.

Vielen Dank für Ihre Hilfe.

+1

fehlende Anführungszeichen in 'username = $ username 'Bessere Verwendung [Vorbereitungserklärung] (http://php.net/manual/de/mysqli.prepare.php) !! – Saty

+0

Verwenden Sie bitte username = '". $ Username."' – Anshum

Antwort

0

einfach Ihren Benutzernamen Variable setzen in Anführungszeichen in Ihrem SQL wie folgt aus: '$username'

SELECT * FROM `users` WHERE username ='$username' 
+0

Vielen Dank für Ihre Hilfe – alberzyzz

0

Yo muss sicherstellen, dass $username wie in doppelte oder einzelne Anführungszeichen gesetzt wird: '$username'

+0

Vielen Dank für Ihre Hilfe – alberzyzz

+0

Was ist mit SQL-Injektion? – Walf