在SQL查询中使用变量的正确格式是什么?是的我知道我的代码不安全,因为它没有哈希和其他缺陷,但我无法让它工作。
include 'config/database.php'; // DB connection.
$password = mysql_real_escape_string($_POST['password']);
$sql = 'INSERT INTO `login` (`id`, `username`, `password`, `question`) VALUES (NULL, \'test\', \$password\, \'test\')';
if (mysqli_query($con, $sql))
{
echo 'Done!';
}
else
{
echo 'No.';
}
mysqli_close($con);
错误
Connection worked!
致命错误:未捕获错误:在C:\ xampp \ htdocs \ hashing \ password.php中调用未定义函数mysql_real_escape_string():3堆栈跟踪:在C:\ xampp \ htdocs \ hashing \中抛出#0 {main}第3行的password.php
它只是一个简单的PHP表单,发布到以下PHP脚本。我还得到了phpMyAdmin中格式化的SQL查询。谢谢!
答案 0 :(得分:-1)
您的xampp必须附带MySQLi而不是MySQL(现已弃用),因此您必须使用mysqli_real_escape_string($var)
代替mysql_real_escape_string($var)
此外,您必须转义将放入SQL查询中的每个变量,并将其包括在内:)! (关注你的SQL查询,你使用的单引号不解释$ password),它更像是:
$sql = 'INSERT INTO
登录(
ID为,
的用户名,
{密码{1}} {问题{1}}