在PHP中使用PDO时,当必须一次向表中插入多行时,我使用的sql如下所示:
INSERT INTO some_names (firstName, lastName) VALUES ('Joe', 'Smith'),('Fred','Sampson'),('Lisa','Pearce');
正如你所看到的,我用一条语句插入了三行,我这样做的原因是我相信这比执行三条不同的语句来插入行更有效。
所以我的问题是:如果我希望能够像在单语句中那样将值绑定到一个语句,那么在PHP中该如何实现这一点:
$query= ("INSERT INTO table (firstName, lastName) VALUE (:firstName, :lastName)", array = (
"firstname"=>$firstName,
"lastName"=>$lastName));
所以我的问题是:有什么方法可以在多插入语句中绑定吗?类似于:
INSERT INTO table (firstName, lastName) VALUES((:firstName, :lastName),(:firstName, :lastName));
2条答案
按热度按时间n9vozmp41#
理论上,这听起来像是单个语句更有效,因为您避免了对MySQL服务器进行多次调用,但现实是,这是一个微观优化,您使代码过于复杂,几乎没有任何好处。
预准备语句最酷的地方在于它只准备一次,就可以执行多次。这已经节省了多次解析SQL语句的时间。只需在循环外准备一条语句,然后在循环内执行它。
如果你像你的常识在评论中建议的那样把整个事情 Package 在一个事务中,那么与一个大的语句相比,在性能上没有明显的区别。
0g0grzrc2#
只需使用
?
占位符创建查询文本,如下所示:并执行它。示例代码可以是: