这是我的片段。
我已经检查了一些与我的错误类似的其他问题,但到目前为止我无法解决它。
<?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 行或错误。因此,返回的资源仅在非错误查询中为真。这可用于处理如下情况。
首先构建并执行查询,然后处理资源。
$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;