这是我的代码片段。
我查看了一些类似于我的错误的其他问题,但目前为止我无法解决它。
<?php
function user_exists ($username) {
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = $username"), 0) == 1) ? true : false;
}
?>
这是我的代码片段。
我查看了一些类似于我的错误的其他问题,但目前为止我无法解决它。
<?php
function user_exists ($username) {
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(user_id) FROM users WHERE username = $username"), 0) == 1) ? true : false;
}
?>
mysql_query
将返回零到 n 行或错误。因此,返回的 resource 只有在非错误查询时才为真。可以使用它来处理以下情况。
首先构建并执行查询,然后处理 resource。
$query="SELECT COUNT(user_id) FROM users WHERE username = ".$username;
$result = mysql_query($query);
if(!$result) die("SELECT failed: ".mysql_error());
if (!$result=mysql_query($query)) {
return false; // or similar operation
}
if (mysql_num_rows($result)!=1){
return false;
}else{
return true;
}
当mysql_query
因某些原因失败并返回false时,就会发生这种情况。因此,您应该将其拆分为多个语句并检查返回值。
$sql = "SELECT COUNT(user_id) FROM users WHERE username = $username";
$result = mysql_query($sql);
if ($result === false) {
// error handling
return false;
}
return (mysql_result($result, 0) == 1) ? true : false;
echo
命令,以查看sanitize($username)
返回了什么。 - mgraph