2017-04-04 4 views
0

Ich habe eine harte Zeit zu versuchen, herauszufinden, wie Sie die Syntax im folgenden Code beheben.Mysql wählen, wo Syntaxfehler

$key = 4; 
$column = "five_year"; 

$query_for_rate = "SELECT $column key FROM $usertable WHERE key=$key"; 

$get_rate = mysql_query($query_for_rate) or die(mysql_error()); 

echo $query_for_rate. "<br>"; 
echo $get_rate; 

if($get_rate){ 
while($row = mysql_fetch_array($get_rate)){ 

echo $row; 

    } 
} 

Fehler:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key FROM current_rates WHERE key=4' at line 1


Vielen Dank für die Antworten. Die Abfrage funktioniert jetzt, denke ich. Wenn ich $ get_rate einchecke, bekomme ich "Resource id # 5". Mein Problem ist jetzt, dass ich meine while-Schleife nicht dazu bringen kann, irgendwelche Ergebnisse zu produzieren. Vielen Dank!

+0

'Schlüssel' ist reserviert. Benennen Sie Ihre Spalte um, außerdem müssen die Spalten im 'select' durch Kommas getrennt sein, oder möchten Sie einen Alias ​​erstellen? – chris85

+1

Außerdem fehlt ein Komma vor dem Schlüssel. –

+0

Sie könnten eine Antwort akzeptieren oder Ihre eigene schreiben? – holms

Antwort

1

Schlüssel ist ein reserviertes Wort. Sie müssen es mit Backticks angeben.

$query_for_rate = "SELECT $column `key` FROM $usertable WHERE `key`=$key"; 

Allerdings vermute ich, dass das nicht funktioniert, aber Sie müssen dies stattdessen tun.

Da Sie den tatsächlichen Spaltennamen nicht referenzieren müssen, was Sie als Aliasnamen es als.

+0

'$ Spalte'! =' Schlüssel'. – chris85

+0

Nach was er schrieb $ Spalte ist Alias ​​als Schlüssel. – Augwa

+0

Sie können keinen Spaltenalias im 'where' verwenden ... oder Sie könnten nicht .. http://stackoverflow.com/questions/8370114/referring-to-a-column-aliass-in-a- where-clause Wie ich es gelesen habe, möchte OP 'five_year' und' key' auswählen. – chris85