Php 我是否应该准备所有查询,即使它们只执行一次?
使用PHP的PDO类,如果每个连接只执行一次查询,那么准备查询是否会导致(轻微的甚至)性能下降,而这并没有得到弥补?我正在制作一个小的数据访问层,我想知道盲目地准备所有查询是可以的,还是应该只准备将被重用的查询。准备好的语句不仅仅用于重用的查询。它们应该用于所有具有不可信数据的查询,确保绑定不可信数据。这消除了SQL注入机会Php 我是否应该准备所有查询,即使它们只执行一次?,php,mysql,pdo,prepared-statement,Php,Mysql,Pdo,Prepared Statement,使用PHP的PDO类,如果每个连接只执行一次查询,那么准备查询是否会导致(轻微的甚至)性能下降,而这并没有得到弥补?我正在制作一个小的数据访问层,我想知道盲目地准备所有查询是可以的,还是应该只准备将被重用的查询。准备好的语句不仅仅用于重用的查询。它们应该用于所有具有不可信数据的查询,确保绑定不可信数据。这消除了SQL注入机会 不,这没有意义。使用$dbh->quote&$dbh->query,它既安全又快速。盲目地准备没有任何参数的查询是可以的?它是否会造成性能损失(甚至可以忽略不计)?是的,性
不,这没有意义。使用$dbh->quote&$dbh->query,它既安全又快速。盲目地准备没有任何参数的查询是可以的?它是否会造成性能损失(甚至可以忽略不计)?是的,性能损失很小。当您准备查询时,它会被发送到服务器进行解析,然后当您执行查询时,它会再次被发送。与只发出query()而只发送一次相反,如果您担心性能,您还可以设置PDO来模拟准备好的语句,从而只进行一次查询server@sreimer:这是默认设置(请参阅上的此线程)。这样做还可以消除SQL注入带来的保护,而SQL注入是通过执行真正的预处理语句来实现的。。。