当使用password_hash()函数生成散列密码时,我有什么理由在将其插入数据库时使用预准备语句?
我的假设是我不需要为密码使用准备好的声明,但为了保持一致,使用密码并不会造成伤害。
其他问题:
如果我使用的是password_hash函数的PASSWORD_DEFAULT参数,它目前将使用bcrypt算法,但将来可以用其他算法替换。如果我不使用预准备语句,未来的算法是否会使用单引号或其他可能破坏SQL语句的符号?
答案 0 :(得分:7)
有什么理由说我想在将数据库插入数据库时使用预准备语句?
仅仅因为数据库层应该对数据源,性质,含义或先前的验证完全无知。数据库层的工作是将数据正确地放入数据库中。准备好的陈述是这样做的唯一正确方法。
所以,用你自己的话说,"但为了保持一致,使用一个"并不会有什么坏处。