This question already has answers here:
When to use single quotes, double quotes, and backticks in MySQL
(12个答案)
在11个月前关闭。
试图将哈希密码插入Phpmyadmin,但我得到一个
错误:“字段列表”中的未知列'$ 2y $ 10 $ fMTEqdQnl3E3EQrq0t2TcelmNGhghIQz0kmXPeFyWKq0BgH7BHxYm'
MySQL将没有单引号的任何字符串都视为保留关键字/列名或表名。
如果查看错误,则会发现确切的问题:
错误:未知列
'$ 2y $ 10 $ fMTEqdQnl3E3EQrq0t2TcelmNGhghIQz0kmXPeFyWKq0BgH7BHxYm'in
“字段列表”
这意味着
(12个答案)
在11个月前关闭。
试图将哈希密码插入Phpmyadmin,但我得到一个
错误:“字段列表”中的未知列'$ 2y $ 10 $ fMTEqdQnl3E3EQrq0t2TcelmNGhghIQz0kmXPeFyWKq0BgH7BHxYm'
<?php
$servername = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "usersystem";
$conn = new mysqli($servername, $dbusername, $dbpassword, $dbname);
$Username = $_POST["usrnm"];
$Password = $_POST["psw"];
$hash = password_hash($Password, PASSWORD_BCRYPT);
$sql = "INSERT INTO users (Username, Password) VALUES ('$Username', $hash)";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
最佳答案
您需要在哈希周围添加单引号
$sql = "INSERT INTO users (Username, Password) VALUES ('$Username', '$hash')";
MySQL将没有单引号的任何字符串都视为保留关键字/列名或表名。
如果查看错误,则会发现确切的问题:
错误:未知列
'$ 2y $ 10 $ fMTEqdQnl3E3EQrq0t2TcelmNGhghIQz0kmXPeFyWKq0BgH7BHxYm'in
“字段列表”
这意味着
hash
的值将用作字段名而不是值。