2016-07-28 55 views
0

我有一個名爲「username」的行的數據庫。我需要證明取決於所登錄的用戶名,其他行的值要做到這一點,我有以下腳本:運行查詢時出現錯誤['where column'中的未知列'test']

$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']; 
} 

$username值被預先存儲。

最後:

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

但我得到這個錯誤:在「where子句」未知列「測試」]有運行查詢錯誤。

「測試」是爲驗證代碼而創建的虛假用戶名。

謝謝你的幫助。

+1

在'用戶名失蹤報價= $ username'更好地使用[準備語句](http://php.net/manual/en/mysqli.prepare.php)!! – Saty

+0

請使用用戶名='「。$ username。」' – Anshum

回答

0

只要把引號內您的用戶名變量在SQL這樣的:'$username'

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

非常感謝您的幫助 – alberzyzz

0

呦必須確保$username放在單或雙引號內,如:'$username'

+0

非常感謝您的幫助 – alberzyzz

+0

SQL注入怎麼辦? – Walf

相關問題