所以我有这段代码:
$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是资源,布尔值在...中给出”但它完成了工作!用户已注册。我知道你必须首先进行查询,然后获取行,但我这样做了!那么问题是什么:/
答案 0 :(得分:0)
如果$ name是文字,您可能需要在SQL中引用它:
$query = "SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER('$name')";
您还应该确保它不包含任何未转义的引号(请参阅以前关于bobby-tables的评论......)
答案 1 :(得分: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; }
当然:您应该使用mysqli
或PDO
,因为mysql
已被弃用。