我将数据插入我的数据库。插入了数据,但我想在插入数据后得到的结果还可以,但是我得到了其他的"注册未完成"。
请帮忙吗?
这是我的代码
<?php
require 'functions.php';
require 'lib/password.php';
if(isset($_POST['username']) && isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
if(!empty($username) && !empty($password)){
$hash = password_hash($password, PASSWORD_BCRYPT);
$query = "INSERT INTO users (id, username, password) VALUES ('','".$username."','".$hash."')";
if($conn->query($query)===TRUE){
echo 'Ok';
} else{
echo 'Registration not complete';
}
}
}
?>
<form action="register.php" method="POST">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Register">
</form>
答案 0 :(得分:1)
pdo::query()成功后不会返回true。它返回一个PDOStatement对象。检查你的条件陈述,你会看到它失败的原因:
if($conn->query($query)===TRUE)
您的查询受SQL注入的影响。这是你何时应该使用pdo::prepare()和PDOStatement :: execute()(又名预备语句)的一个很好的例子。您不应直接在查询中使用用户输入(POST),在本例中为$username
。