运行查询时出现错误['where column'中的未知列'test']

问题描述:

我有一个名为“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

只要把引号内您的用户名变量在SQL这样的:'$username'

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

非常感谢您的帮助 – alberzyzz

呦必须确保$username放在单或双引号内,如:'$username'

+0

非常感谢您的帮助 – alberzyzz

+0

SQL注入怎么办? – Walf