我正在尝试使用PHP和MySQL创建重复检查,现在尝试了许多不同的变种。然而,我的代码不显示用户名是否已存在。据我所知,这应该是功能重复检查的正确(很多)公式?
$username = "heihei";
$checkquery = mysqli_query($con,"SELECT * FROM users
WHERE username='$username'") or die(mysqli_error());
if (mysqli_num_rows($checkquery)) {
echo ">0" ;
}else {
echo "0" ;
}
用户表如下所示:
ID USERNAME
1 heihei
2 neinei
将$username
定义为heihei
时,结果为0
。
如果我将$username
定义为something
,则结果相同。
它将显示用户已经不存在。
这里有什么问题?
答案 0 :(得分:1)
这样做:
替换
if (mysqli_num_rows($checkquery)) {
使用:
if (mysqli_num_rows($checkquery) > 0) {
并将echo ">0" ;
替换为echo "Exists";
- 这就是我成功使用的内容。
也可以尝试:
$results = "SELECT username FROM users WHERE username = '$username'";
$checkquery = mysqli_query($con,$results) or die(mysqli_error());
if (mysqli_num_rows($checkquery) > 0) {
我在我的脚本中执行此操作的方式是:
$mysqli = new mysqli("xxx","xxx", "xxx", "xxx");
$username = mysqli_real_escape_string($mysqli,$_POST['username']);
$username = $_POST['username'];
$sql = "SELECT username FROM users WHERE username = '$username'";
$results = mysqli_query($mysqli,$sql) or die(mysqli_error());
if (mysqli_num_rows($results) > 0)
{
die("Sorry, that username is already taken.");
}
答案 1 :(得分:1)
您还可以使用其他查询:
SELECT COUNT(*) FROM users WHERE `username` = '$username'
并查看结果
答案 2 :(得分:0)
if(mysqli_num_rows(mysqli_query($checkquery))== 0){
echo "no duplicates";
}