【发布时间】:2012-12-05 13:12:59
【问题描述】:
我在 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 语句从 votes 表中返回一行。我错过了什么吗?这可能与桌子的构造有关吗?我还尝试在 select 语句之后运行 while 循环,但看不到任何错误。任何指针都会有所帮助。
【问题讨论】:
-
您是否尝试将查询本身输出并手动运行?
-
回显查询并将该查询直接运行到 mysql
-
再次检查您的变量是否符合您的预期,同时回显整个(包括生成的变量)SQL 查询并尝试在 phpMyAdmin(或类似的)中运行它。
-
已尝试使用 print_r($vote);查看 SQL 语句的样子,还尝试了 echo $vote;但只是返回资源 id#8。