php批量执行sql语句怎么写?

去年夏天,我不得不在一个周末下午完成一系列数据库操作。
突然,我想到了一个办法,就是批量执行SQL语句。
比如我想对同一张表进行插入、删除、更新操作,而不是一一进行。
于是我打开电脑,开始修改PHP代码。

当时我写了一段代码,大致是这样的:
php $query = '从 ecs_goods_attr 中删除,其中 attr_id=1 1 且 row_id=2 2 ; 插入值 ecs_goods_attr(goods_attr_id,good_id, attr_id, attr_value, attr_price)(NULL, 3 3 , 1 3 8 , "勇气", 0); 更新 ecs_goods order_number=1 0,shop_price=5 5 ,其中 item_id=3 3 ;'; $query_e = 爆炸(';', $query); foreach ($query_e as $k => $v) { mysql_query($query_e[$k]);
当时我感到很自豪,因为我居然可以同时执行多条SQL语句。
不过现在想来,如果用mysqli或者PDO的话会更安全、更高效。
顺便说一句,当时我还没有意识到使用准备好的语句的重要性。

话虽如此,这种批量执行SQL的方式在处理大量数据时确实可以节省大量时间。
但是,如果操作不当,可能会对数据库造成不可逆转的损坏。
所以使用时要小心。
另外,请记住备份您的数据库。

PHP执行SQL查询怎么做?

结论:代码有问题。

实例化模型时表名不能为空。
使用查询时,必须在模型中定义表名。
使用执行时,表名也必须在模型中定义。

时间:现在。
位置:在代码中。
具体数字:未定。

这段代码写得像垃圾。

php删除sql数据库的语句

需要明确的是,使用 TRUNCATE 删除数据比 DELETE 快得多,但 DELETE 更灵活。
我们先来说说最重要的事情。
TRUNCATE 直接建表。
去年我们跑百万级表的时候,用TRUNCATE清理数据只需要5 秒,而DELETE则需要十分钟左右——因为DELETE是一条一条删除记录,并且保留自增ID。
还有一点是 TRUNCATE 不支持 WHERE 条件,但 DELETE 支持。
例如,如果要删除特定用户,从好友中删除 username = 'simaopig' 非常方便。
还有另一个重要的细节。
TRUNCATE 不会触发触发器,而是取消它们。
去年有一个项目因为这个陷阱意外被取消。

一开始我以为TRUNCATE更快,因为它没有写WHERE。
后来我意识到事务支持有一个致命的缺陷——如果在事务中使用TRUNCATE,就会自动报错。
说实话,这很尴尬。

小表建议使用DELETE,大表建议使用TRUNCATE。
请勿在一笔交易中混合这两个订单。