0

所以我有这个代码:

$query = "SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER($name)";
$result = mysql_query($query);
list($count) = mysql_fetch_row($result);
if($count >= 1) { 
echo 'Username already exists; }

并且由于某种原因,当我在我的 wamp 服务器上测试它时,我回来了:“警告:mysql_fetch_row() 期望参数 1 是资源,布尔值在......”但它完成了工作!用户已注册。我知道您必须先进行查询,然后再获取行,但我做到了!那么问题是什么:/

4

2 回答 2

0

如果 $name 是文字,您可能需要在 SQL 中引用它:

$query = "SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('$name')";

您还应该确保它不包含任何未转义的引号(请参阅之前关于 bobby-tables 的评论 ...)

于 2013-07-05T02:09:03.643 回答
0

您的 SQL 查询可能有语法错误。做这个:

$sname = mysql_real_escape_string($name);
$query = "SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('$sname')";

echo $query;


if (($result = mysql_query($query)) == false) {
  die(mysql_error);
}
list($count) = mysql_fetch_row($result);
if($count >= 1) { 
  echo 'Username already exists; }

当然:您应该使用mysqliPDOmysql推荐使用。

于 2013-07-05T02:09:35.553 回答