使用php检查用户名是否已经存在
我有一个注册表格,按下“注册”按钮后,我想检查数据库,看看该用户是否已经存在,如果已经存在,则返回一条错误消息“name ready exists”,如果不存在,当然,我希望它注册该用户。我找到了许多以前被问过的解决方案,但都没有真正起作用。经过多次修改后,当前代码如下:使用php检查用户名是否已经存在,php,mysqli,Php,Mysqli,我有一个注册表格,按下“注册”按钮后,我想检查数据库,看看该用户是否已经存在,如果已经存在,则返回一条错误消息“name ready exists”,如果不存在,当然,我希望它注册该用户。我找到了许多以前被问过的解决方案,但都没有真正起作用。经过多次修改后,当前代码如下: ?php if(isset($_POST['register'])) { session_start(); $FName = $_POST['firstname']; $LName = $_POS
?php
if(isset($_POST['register'])) {
session_start();
$FName = $_POST['firstname'];
$LName = $_POST['lastname'];
$Email = $_POST['email'];
$PW = $_POST['password'];
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "users_db_physicians";
$conn = new mysqli($servername, $username, $password, $dbname);
$result_x = $conn->query("SELECT FROM users_database (username) WHERE username = '$Email'");
if (mysqli_num_rows($result_x)>=1) {
echo "name already exists";
}
else
{
$conn->query("INSERT INTO users_database (first_name, last_name, username, password)Values('{$FName}', '{$LName}', '{$Email}', '{$PW}')");
header('Location: login.php');
echo "it works";
}
}
?>
到目前为止,使用上面的代码,唯一发生的事情是用户注册(我检查了表并更新了表),页面移动到login.php,所以我猜ELSE只起作用,没有生成行,或者if语句有问题
请帮忙
谢谢你的时间,
oliver_foxx您没有选择任何列,因此我猜您的查询失败了<代码>从脚本顶部选择,添加
错误报告(E\u ALL);ini设置(“显示错误”,1)
您的SELECT
语句出现SQL语法问题,导致$result\u x
不是结果资源,else案例正在执行,但您没有看到错误。SELECT应采用SELECT username FROM username='the name'
的形式,而不是调用query()
,在MySQLi中使用prepare()/bind_param()/execute()
和?
占位符作为用户名占位符非常重要,以确保针对SQL注入的安全性(还有其他方法,但这是首选方法)请参阅MySQLi示例谢谢大家,@MichaelBerkowski选择结构有故障,我是从另一个帖子上抄来的,可惜没注意到。我将致力于SQL注入预防。非常感谢!您没有选择任何列,因此我猜您的查询将失败<代码>从脚本顶部选择,添加错误报告(E\u ALL);ini设置(“显示错误”,1)
您的SELECT
语句出现SQL语法问题,导致$result\u x
不是结果资源,else案例正在执行,但您没有看到错误。SELECT应采用SELECT username FROM username='the name'
的形式,而不是调用query()
,在MySQLi中使用prepare()/bind_param()/execute()
和?
占位符作为用户名占位符非常重要,以确保针对SQL注入的安全性(还有其他方法,但这是首选方法)请参阅MySQLi示例谢谢大家,@MichaelBerkowski选择结构有故障,我是从另一个帖子上抄来的,可惜没注意到。我将致力于SQL注入预防。非常感谢!