我没有在标题中解释我的问题,所以让我再试一次,这是我的注册表(我希望它保持非常简单,而且在MySQLi中也不是PDO或其他)。
<?php
require('library/sql/db.php');
if (isset($_POST['submit'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);
$h_password = password_hash($password, PASSWORD_DEFAULT);
if (mysqli_query($db, 'INSERT INTO users (username, password) VALUES ( "$username","$h_password")')) {
echo 'Registered';
} else {
echo 'Error';
}
}
现在是数据库,
This is what values the php code inserts in the sql
解决这个问题的方法是什么?我尝试过任何我能在网上找到的东西。 感谢。
编辑:哦,我也尝试将“”换成'',就像这样:<?php
require('library/sql/db.php');
if(isset($_POST['submit']))
{
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);
$h_password = password_hash($password, PASSWORD_DEFAULT);
if(mysqli_query($db, "INSERT INTO users (username, password) VALUES ( '$username', '$h_password')"))
{
echo 'Registered';
}else{
echo 'Error';
}
}
答案 0 :(得分:1)
这是因为单引号'
字符串不会转义php变量。所以,改成它:
if(mysqli_query($db, "INSERT INTO users (username, password) VALUES ( '{$username}','{$h_password}')"))
注意:请使用预先准备好的语句Read More