确保唯一用户名的Php
我有一个注册页面,我想确保用户名是唯一的。我已经在这里尝试了所有的解决方案,但没有任何效果 这是我当前遇到的错误:确保唯一用户名的Php,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个注册页面,我想确保用户名是唯一的。我已经在这里尝试了所有的解决方案,但没有任何效果 这是我当前遇到的错误: Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\project\projectregistered.php on line 16 Query was empty 以下是我的php: <?php $con=mysqli_connect("localhos
Warning: mysqli_query() expects at least 2 parameters, 1 given
in C:\xampp\htdocs\project\projectregistered.php on line 16
Query was empty
以下是我的php:
<?php
$con=mysqli_connect("localhost","root","","test");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$username = $_POST['username'];
echo $username;
$query = mysqli_query("SELECT * FROM projectuser WHERE username='$username'");
$result1 = mysql_query($query) or die (mysql_error().$query);
$count = mysql_num_rows($result1);
if ($count>0) {
echo 'Sorry! This Username already exists!';
} else {
$surname = $_POST['surname'];
$sql = "INSERT INTO projectuser (firstname, surname, username, password, location)
VALUES
('$_POST[firstname]', '".mysql_real_escape_string($surname)."', '$_POST[username]', '$_POST[password]', '$_POST[location]')";
}
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added ".$sql;
mysqli_close($con);
?>
在使用过程方法时,还需要将连接句柄作为第一个参数传递。应该是
mysqli_query($con, "SELECT * FROM projectuser WHERE username='$username'");
另外,使数据库表中的username
列唯一
更新:我刚刚意识到您同时使用了
mysql\uuu
和mysqli\uu
函数。最好坚持第二条。所以你的代码应该是:
$query = "SELECT * FROM projectuser WHERE username='$username'";
$result = mysqli_query($con, $query);
$count = mysqli_num_rows($result);
但是如上所述,如果将
username
列设置为UNIQUE
,则根本不需要该检查。您可以在插入后使用检查记录是否已插入。如果尚未插入,则UNIQUE
约束已触发。这种方法比只检查用户名是否已存在而先选择更有效。在使用过程方法时,还需要将连接句柄作为第一个参数传递。应该是
mysqli_query($con, "SELECT * FROM projectuser WHERE username='$username'");
另外,使数据库表中的username
列唯一
更新:我刚刚意识到您同时使用了
mysql\uuu
和mysqli\uu
函数。最好坚持第二条。所以你的代码应该是:
$query = "SELECT * FROM projectuser WHERE username='$username'";
$result = mysqli_query($con, $query);
$count = mysqli_num_rows($result);
但是如上所述,如果将
username
列设置为UNIQUE
,则根本不需要该检查。您可以在插入后使用检查记录是否已插入。如果尚未插入,则UNIQUE
约束已触发。这种方法比只检查用户名是否已经存在而先选择更有效。在MySQL表中使用户名
列唯一是最简单的方法
CREATE UNIQUE INDEX uname_uniq ON projectuser (username);
这将防止在INSERT
或UPDATE
在MySQL表中使
用户名
列唯一是实现这一点的最简单方法
CREATE UNIQUE INDEX uname_uniq ON projectuser (username);
这将防止在INSERT
或UPDATE
大多数mysqli_*函数都希望将mysqli实例作为第一个参数 或者可以使用$con->function(),而无需额外参数 p、 美国:不要混合使用mysqli和mysql
要确保用户名是唯一的,只需在列中添加唯一索引。。。(并检查是否设置了$con->error)大多数mysqli_*函数都希望将mysqli实例作为第一个参数 或者可以使用$con->function(),而无需额外参数 p、 美国:不要混合使用mysqli和mysql
要确保用户名是唯一的,只需在列中添加唯一索引。。。(并检查是否设置了$con->error)我仍然收到错误:警告:mysql\u query()希望参数1是字符串,第18行C:\xampp\htdocs\project\projectregistered.php中给出的对象可捕获致命错误:第18行C:\xampp\htdocs\project\projectregistered.php中的类mysqli\u result的对象无法转换为字符串等待,我刚刚意识到,您也在使用
mysql\uuu
以及mysqli\uu
函数。。。最好坚持使用mysqli(),只需删除整行代码($result1=mysql\u query($query)或死(mysql\u error().$query)代码>这没有任何意义哈,我也这么认为,但当我更改它们时,会出现更多错误我只是进一步更新了答案,所以您可以避免检查;-)我仍然得到错误:警告:mysql\u query()希望参数1是字符串,在第18行的C:\xampp\htdocs\project\projectregistered.php中给出的对象可捕获致命错误:在第18行的C:\xampp\htdocs\project\projectregistered.php中,mysqli\u result类的对象无法转换为字符串等待,我刚刚意识到,您也在使用mysql\uuu
以及mysqli\uu
函数。。。最好坚持使用mysqli(
),只需删除整行代码($result1=mysql\u query($query)或死(mysql\u error().$query)代码>这没有任何意义哈,我也这么认为,但当我更改它们时,会出现更多错误我只是进一步更新了答案,所以您可以避免检查;-)你混合了mysql和mysqli函数,坚持其中一个(如果是mysqli更好)你混合了mysql和mysqli函数,坚持其中一个(如果是mysqli更好),我知道,但我想尝试通过php实现它first@user1944305这样,您的代码总体上看起来是正确的,但您需要修复现有的mysql/mysqli组合。修复它,测试它并重新发布代码,如果它仍然不工作,我知道,但我想尝试通过php实现它first@user1944305这样,您的代码总体上看起来是正确的,但您需要修复现有的mysql/mysqli组合。修复这个问题,测试它,如果仍然不起作用,则重新发布代码