这里有些错误。
您正在使用错误的@L_502_0@ 作为列中的 (并用引号引起来):
('id', 'username', 'password', 'email')
删除它们
(id, username, password, email)
或使用反引号
(`id`, `username`, `password`, `email`)
MysqL_error()
应该向您抛出一个错误,但这不是因为:
这两个不同的API不会相互混合。
if($query = MysqLi_query($connect, "INSERT...
并更改MysqL_error()
为MysqLi_error($connect)
作为该块的重写:
if(isset($_POST["submit"])){
if($query = MysqLi_query($connect,"INSERT INTO users ('id', 'username', 'password', 'email') VALUES('', '".$username."', '".$password."', '".$email."')")){
echo "Success";
}else{
echo "Failure" . MysqLi_error($connect);
}
}
按照我上面概述的方法进行更改,同时使列中的引号保持现在的样子。然后,您将看到My??sql将引发的错误。然后,您可以按照上面已经概述的方法进行操作,并删除列名周围的引号,或将其替换为反引号。
您看到的教程可能很好地使用了反引号,但可能没有足够的区别,让您不能说它们确实是反引号而不是单引号。
但是,您当前的代码可以进行 。使用 ,或 ,他们更安全 。
我注意到您可能以纯文本形式存储密码。如果是这种情况,强烈建议不要这样做。
我建议您使用 或PHP 5.5的password_hash()
函数。对于PHP <5.5,使用password_hash() compatibility pack
。
另外,不要这样做:
$connect = MysqLi_connect("localhost", "root", "") or die("Could not connect to server!");
MysqLi_select_db($connect, "PHP_forum") or die("Could not connect to database!");
就像手册中指出的那样,您应该检查错误。
$link = MysqLi_connect("myhost","myuser","mypassw","mybd")
or die("Error " . MysqLi_error($link));
因此,在您的情况下:
$connect = MysqLi_connect("localhost", "root", "","PHP_forum")
or die("Error " . MysqLi_error($connect));
我更改action="register.PHP"
为,action=""
因为您正在同一页面中使用整个代码。
<!DOCTYPE HTML>
<html>
<head>
<title>Register</title>
</head>
<body>
<form action="" method="POST">
Username: <input type="text" name="username">
<br/>
Password: <input type="password" name="password">
<br/>
Confirm Password: <input type="password" name="confirmPassword">
<br/>
Email: <input type="text" name="email">
<br/>
<input type="submit" name="submit" value="Register"> or <a href="login.PHP">Log in</a>
</form>
</body>
</html>
<?PHP
require('connect.PHP');
$username = $_POST['username'];
$password = $_POST['password'];
$confirmPassword = $_POST['confirmPassword'];
$email = $_POST['email'];
if(isset($_POST["submit"])){
if($query = MysqLi_query($connect,"INSERT INTO users (`id`, `username`, `password`, `email`) VALUES ('', '".$username."', '".$password."', '".$email."')")){
echo "Success";
}else{
echo "Failure" . MysqLi_error($connect);
}
}
?>