当我使用PHP中的变量构建查询字符串时,它似乎没有工作。我当前的查询是:PHP查询字符串中的变量不起作用
$u = "admin";
$hash = password_hash("password", PASSWORD_DEFAULT);
$set_login = "INSERT INTO users (username, password) VALUES ({$u}, {$hash})";
*我执行查询进一步向下脚本
如果我用文字所代表的字符串替换{$u}
,与只是一个字符串字面密码更换{$hash}
,如password
,查询工作正常。但是,当我介绍什么时候中断的变量。我试图分解查询字符串,并使用连接运算符:
$set_login = "INSERT INTO users (username, password) VALUES (" . $u . ", " . $hash . ")";
这也没有工作。然后我认为它可能是散列,所以我修改了代码(用于测试):
$u = "admin";
$p = "password";
$set_login = "INSERT INTO users (username, password) VALUES ({$u}, {$p})";
这也没有效果。
使用准备语句来代替 –
这实在是一般的差的方法,你应该使用**准备语句**。但是,请尝试将**引号**添加到查询中。像''INSERT INTO用户(用户名,密码)VALUES('{$ u}','{$ hash}')“;' – FirstOne
请确保密码栏至少为60个字符,否则您将遇到问题试图验证密码。 –