本文共 344 字,大约阅读时间需要 1 分钟。
在PHP从5升级到7时,PDOStatement::bindValue的行为发生了变化,特别是在处理参数类型时。以下是遇到的问题及解决方案。
在PHP5.6中,传递PDO::PARAM_INT时,默认类型是PDO::PARAM_STR,当使用PDO::PARAM_INT时会执行特定判断。在PHP7.2中,默认类型仍为PDO::PARAM_STR,但当使用PDO::PARAM_INT时,可能会导致字符串值被转换为0。
解决方案是避免指定类型,直接使用默认的字符串类型。这样可以确保参数在PHP7中正确处理,避免值被错误转换。
修改后的代码为:
$statement->bindValue(2, 'NH');
这样,在PHP7中,参数会被正确处理为字符串,避免了因类型转换错误导致的问题。
转载地址:http://uqtfk.baihongyu.com/