MySQLi - 总是返回 1 行
MySQLi - Always Returning 1 Row
因此,我编写了一个函数来检查我的数据库以查看用户名是否已被占用。
基本上,对于行数它总是返回 1,即使变量 $user 不是数据库中的用户名。
不知道为什么,有什么想法吗?
函数:
function userTaken($user){
require_once('db.php');
$taken = mysqli_query($mysqli, "SELECT * FROM users WHERE username = '$user'");
if (!$taken) {
die(mysqli_error($mysqli));
}
$cnt = mysqli_num_rows($taken);
if($cnt > 0){
return true;
} else {
return false;
}
}
调用函数:
if(userTaken($user)){
echo "<font color='red'>That username is already taken!</font>";
}
尝试先查询再查询
if(isset($user) && $user!='')
{
$taken = mysqli_query($mysqli, "SELECT * FROM users WHERE username = '$user'");
}
根据我的经验,MySQL 可以 return 为 row_count
提供一些时髦的值
也许
result = $db->query($mysqli, "SELECT COUNT(*) AS cnt FROM users WHERE username = '$user'")
while($row = $result->fetch_assoc()){
echo $row['username'] . '<br />';
}
或尝试
/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();
}
因此,我编写了一个函数来检查我的数据库以查看用户名是否已被占用。
基本上,对于行数它总是返回 1,即使变量 $user 不是数据库中的用户名。
不知道为什么,有什么想法吗?
函数:
function userTaken($user){
require_once('db.php');
$taken = mysqli_query($mysqli, "SELECT * FROM users WHERE username = '$user'");
if (!$taken) {
die(mysqli_error($mysqli));
}
$cnt = mysqli_num_rows($taken);
if($cnt > 0){
return true;
} else {
return false;
}
}
调用函数:
if(userTaken($user)){
echo "<font color='red'>That username is already taken!</font>";
}
尝试先查询再查询
if(isset($user) && $user!='')
{
$taken = mysqli_query($mysqli, "SELECT * FROM users WHERE username = '$user'");
}
根据我的经验,MySQL 可以 return 为 row_count
提供一些时髦的值也许
result = $db->query($mysqli, "SELECT COUNT(*) AS cnt FROM users WHERE username = '$user'")
while($row = $result->fetch_assoc()){
echo $row['username'] . '<br />';
}
或尝试
/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();
}