php – 关于PDO和bindparam的澄清

我是PDO的新手,不得不说到目前为止我喜欢它,但我对它使用的一些调用仍然有点不稳定,而且文档并不是那么可靠.

我使用了几个存储过程,根据我对PDO的理解,我不得不为此做准备.我构建了一个模块,用于存储有关用户引起的任何错误的信息.我知道bindParam将转义任何引号并在将字符串插入数据库之前清除它,这不是我想要的.我希望在用户输入字符串时看到字符串以进行故障排除.我试图放弃bindparam调用但是在尝试通过引用传递时遇到错误.我有办法实现这个目标吗?也欢迎提出建议.谢谢.

最佳答案
bindParam不会“逃避”或“清理”任何东西.它将您提供的字符串直接发送到数据库层,逐字.字符串中包含的任何’字符最终都将作为数据库中列中的’字符.这就是参数化的全部要点:没有“特殊字符”需要担心.

如果您在传递对bindParam的非引用时遇到问题,我建议使用bindValue.实际上我非常建议一直使用该调用,因为bindParam(和mysqli_stmt_bind_param)的引用行为令人困惑,而且几乎总是不需要的.

转载注明原文:php – 关于PDO和bindparam的澄清 - 代码日志