我通过pdo在php中使用mysql准备的语句来分离查询和数据,比如:

CALL `celestial_object_view`(?, ?)

但是mysql日志显示
CALL `celestial_object_view`('1', '1')

因此,我猜数据在发送到mysql之前实际上已经合并到查询中了?对于短数据来说,这不是问题,但是当插入10兆blob数据时,mysql服务器会对超出的max_allowed_packet发出尖叫。
如何使pdo/php/mysql将数据与ps分开考虑,以便在不到达max_allowed_packet的情况下使用大量数据执行一个简短的ps?

最佳答案

你在日志中看到的东西有两种可能的解释。
很明显,默认情况下pdo只是将常规sql查询发送到服务器。
如果使用了真正的prepared语句,那么您看到的日志条目将被人为地调用,特别是用于日志记录目的,而prepared语句将被正确地执行,数据将单独发送。
所以,只要确保仿真模式已关闭,并且您emulates prepared statements,就不用担心了

09-25 18:24
查看更多