我正在创建一个register.php,我现在正处于创建"数据库中的用户名和电子邮件检查阶段"不知怎的,我总是得到一个错误。请帮我解决这个问题。感谢
<?php
require_once('pages/connect.php');
if (isset($_POST['username']) && isset($_POST['password'])){
$username = mysqli_real_escape_string($connection, $_POST['username']);
$email = mysqli_real_escape_string($connection, $_POST['email']);
$password = md5($_POST['password']);
$repassword = md5($_POST['repassword']);
if ($password == $repassword) {
$fmsg = "";
$usernamesql = "SELECT * FROM 'users' WHERE username='$username'";
$usernameres = mysqli_query($connection,$usernamesql);
$count = mysqli_num_rows($usernameres);
if($count == 1){
$fmsg .= "Username Already Exist!";
}
$query = "INSERT INTO 'users' (username, password, email) VALUES ('$username', '$password', '$email')";
$result = mysqli_query($connection, $query);
if($result){
$smsg = "User Created Successfully.";
}else{
$fmsg .= "Failed to Register User";
}
} else {
$fmsg = "Password Do not Match";
}
}
?>
我已多次检查
$usernamesql = "SELECT * FROM 'users' WHERE username='$username'";
但我仍然收到错误消息。请帮我。谢谢你的帮助。
答案 0 :(得分:0)
此问题总是由失败的SQL语句引起,这会导致错误的返回值。应该检查这一点,以确保您不要尝试将其用作例如行集。
在这个特定的实例中,您应该使用users
(或等效的反引号,尽管在这种情况下不需要),而不是'users'
。前者是数据库对象,后者是字符串文字。
换句话说,其中一个:
$usernamesql = "SELECT * FROM users WHERE username='$username'";
$usernamesql = "SELECT * FROM `users` WHERE username='$username'";
答案 1 :(得分:0)
查询中的引号错误。
$usernamesql = "SELECT * FROM 'users' WHERE username='$username'";
'用户'周围的引号应为`样式引号。
此外,你应该添加如下内容:
if ( !$usernameres ) {
die(mysqli_error());
}
这应该在您执行mysqli_query
的行的正下方。这将让您看到实际的错误消息。