我的代码存在问题,无法检查用户名是否已注册。我在这里搜索了不同的解决方案,并在我的代码上实现了一些解决方案,但我仍然无法让它工作。我尝试多次注册相同的用户名仍然可以注册,而不会提示我已经使用了用户名。如果这很容易解决,我很抱歉,因为我是php和mysql的新手。
我尝试了多种解决方案,但似乎没有一种方法适合我。这是我最近的代码迭代。
<?php
session_start();
if (isset($_POST['submit'])) {
$dbCon = mysqli_connect("localhost", "root", "badassrichv", "FootballDB");
if (mysqli_connect_errno()) {
echo "Failed to connect: " . mysqli_connect_error();
}
$username = strip_tags($_POST['name']);
$password = strip_tags($_POST['password']);
$email = strip_tags($_POST['email']);
$checkName = 'SELECT * FROM user WHERE username = "$username"';
$run = mysqli_query($dbCon, $checkName);
$data = mysqli_fetch_array($run, MYSQLI_NUM);
if ($data[0] > 0) {
echo "<script>alert('Name already registered. Input a different name')</script>";
exit();
} else {
$sql = "INSERT INTO user (username, password, email) VALUES ('$username', '$password', '$email')";
}
....More code
答案 0 :(得分:0)
将if ($data[0] > 0) {
替换为if (mysqli_num_rows($run) > 0) {
。
完成此操作后,您还可以摆脱$data = mysqli_fetch_array($run, MYSQLI_NUM);
行。
答案 1 :(得分:0)
尝试在数据库的用户名列中放置一个唯一键,并捕获重复的条目错误代码