好处: (1)解析查询只有一次 (2)执行一些查询优化步骤只有一次 (3)通过二进制协议发送参数比送他们为ASCII文本更有效 比如DATE,对于准备之后,发送日期只用3个字节;如果没有准备,日期必须以字符串的形式发送,需要数据库方再解析,这样需要发送10个字节。 (4)只有参数(不是整个查询文本)需要为每个执行要发送 (5)的MySQL直接存储parameteres到服务器上的缓冲区 (6)安全性也有帮助,就没有必要逃避或引用值。 坏处: (1)本地到一个连接,以便另一个连接不能再使用 (2)不能使用MySQL查询缓存(5.1版本之前) (3)不总是更有效,如果你使用它只有一次 (4)存储函数中不能使用(存储过程是可以的) (5)有可能会导致“泄漏”如果你忘记释放它
PHP 使用 Mysqli 的 prepare 语句有什么好处?
好处: (1)解析查询只有一次 (2)执行一些查询优化步骤只有一次 (3)通过二进制协议发送参数比送他们为ASCII文本更有效 比如DATE,对于准备之后,发送日期只用3个字节;如果没有准备,日期必须以字符串的形式发送,需要数据库方再解析,这样需要发送10个字节。 (4)只有参数(不是整个查询文本)需要为每个执行要发送 (5)的MySQL直接存储parameteres到服务器上的缓冲区 (6)安全性也有帮助,就没有必要逃避或引用值。 坏处: (1)本地到一个连接,以便另一个连接不能再使用 (2)不能使用MySQL查询缓存(5.1版本之前) (3)不总是更有效,如果你使用它只有一次 (4)存储函数中不能使用(存储过程是可以的) (5)有可能会导致“泄漏”如果你忘记释放它
其他回答
这是PHP官网的解释:
|
大致意思是说有两个好处:
- 可以通过驱动让服务端缓存查询计划,从而提高查询效率;
- 可以防止SQL注入,自动转义一些特殊字符.