我是PDO的新手,不得不说到目前为止我喜欢它,但我对它使用的一些调用仍然有点不稳定,而且文档并不是那么牢固。
我正在使用几个存储过程,根据我对PDO的理解,我不得不为此做准备。我构建了一个模块,用于存储有关用户引起的任何错误的信息。我知道bindParam将转义任何引号并在将字符串插入数据库之前清除它,这不是我想要的。我希望在用户输入字符串时看到字符串以进行故障排除。我试图放弃bindparam调用但是在尝试通过引用传递时遇到错误。我有办法实现这个目标吗?也欢迎提出建议。感谢。
答案 0 :(得分:6)
bindParam
不会“逃避”或“清理”任何东西。它将您提供的字符串直接发送到数据库层,逐字。字符串中包含的任何'
字符最终将作为数据库中列的'
字符。这就是参数化的全部要点:不需要担心“特殊字符”。
如果您在向bindParam
传递非引用时遇到问题,建议您改用bindValue
。实际上我建议一直使用该调用,因为bindParam
(和mysqli_stmt_bind_param
)的引用行为令人困惑,而且几乎总是不受欢迎。