http://zhidao.baidu.com/link?url=9C40AoCTrSNIfGCVB3nwTdOCs_M5SWBLfA-HsInPEFf16C5vfT-NixRdAW62YuO0cTX_RYANzrvONtj_YzzBIRHqMgaMGp-Y-dS8rXt15Ru
好处: (1)解析查询只有一次 (2)执行一些查询优化步骤只有一次 (3)通过二进制协议发送参数比送他们为ASCII文本更有效 比如DATE,对于准备之后,发送日期只用3个字节;如果没有准备,日期必须以字符串的形式发送,需要数据库方再解析,这样需要发送10个字节。 (4)只有参数(不是整个查询文本)需要为每个执行要发送 (5)的MySQL直接存储parameteres到服务器上的缓冲区 (6)安全性也有帮助,就没有必要逃避或引用值。 坏处: (1)本地到一个连接,以便另一个连接不能再使用 (2)不能使用MySQL查询缓存(5.1版本之前) (3)不总是更有效,如果你使用它只有一次 (4)存储函数中不能使用(存储过程是可以的) (5)有可能会导致“泄漏”如果你忘记释放它
PHP 使用 Mysqli 的 prepare 语句有什么好处?
2016-05-26 11:08
最佳答案
好处: (1)解析查询只有一次 (2)执行一些查询优化步骤只有一次 (3)通过二进制协议发送参数比送他们为ASCII文本更有效 比如DATE,对于准备之后,发送日期只用3个字节;如果没有准备,日期必须以字符串的形式发送,需要数据库方再解析,这样需要发送10个字节。 (4)只有参数(不是整个查询文本)需要为每个执行要发送 (5)的MySQL直接存储parameteres到服务器上的缓冲区 (6)安全性也有帮助,就没有必要逃避或引用值。 坏处: (1)本地到一个连接,以便另一个连接不能再使用 (2)不能使用MySQL查询缓存(5.1版本之前) (3)不总是更有效,如果你使用它只有一次 (4)存储函数中不能使用(存储过程是可以的) (5)有可能会导致“泄漏”如果你忘记释放它
采纳率:74%擅长:JavaScript数据库DB
Calling PDO::prepare()
and
PDOStatement::execute()
for
statements that will be issued multiple times with different parameter values optimizes the performance of your application by allowing the driver to negotiate client
and
/
or
server side caching of the query plan
and
meta information,
and
helps to prevent SQL injection attacks by eliminating the need to manually quote the parameters.
PDO will emulate prepared statements/bound parameters
for
drivers that
do
not natively support them,
and
can also rewrite named
or
question mark style parameter markers to something more appropriate,
if
the driver supports one style but not the other.
|
大致意思是说有两个好处: