我通过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,就不用担心了