MySQL select语句不返回行

时间:2012-12-05 13:13:00

标签: php mysql

我有一个我在PHP中使用的简单SELECT语句:

$vote=mysql_query("SELECT * FROM `votes` where username = '$big_hand_username' AND 
`voter` = '$user_name'");

使用此语句时,我不会返回任何行。我应该返回1行。我只在投票表中有一行,它包含与变量$ big_hand_username匹配的用户名字段。 $ big_hand_username& $ user_name都包含数据,我已经回应它们以确保。

然而,当我只从选票表中选择所有时,我会返回1行,这是您所期望的。我也可以使用相同的变量从另一个表中选择所有:

$vote=mysql_query("SELECT * FROM `users` where username = '$big_hand_username'");

这将返回1行,您可以期望它包含一行,其中包含与字段用户名匹配的行。

我只是无法理解为什么我无法使用第一个select语句从投票表中返回一行。我错过了什么吗?这可能与桌子的建设有关吗?我也尝试在select语句之后运行while循环但是看不到任何错误。任何指针都会有所帮助。

3 个答案:

答案 0 :(得分:2)

试试这个

$vote=mysql_query("SELECT * FROM `votes` where username = '".$big_hand_username."' AND 
voter = '".$user_name."'");

答案 1 :(得分:0)

试试这个

$vote = mysql_query("
            SELECT * FROM votes 
            WHERE username = '{$big_hand_username}' 
            AND voter = '{$user_name}'
        ");

答案 2 :(得分:0)

尝试下面的线

$sql="
        SELECT * FROM votes 
        WHERE username = '{$big_hand_username}' 
        AND voter = '{$user_name}'
    ";
echo $sql; // for debuging also user_name,big_hand_username check
// for preventing sql-injection
$vote=mysql_query($sql);