$ids = '1,2,3';
$records = User::find(sprintf("id IN (%s)", $ids)); // or you can avoid using sprintf and simply use concatenating operator like "IN (" . $ids . ")"
$records->delete(); // this should return boolean
B)您还可以链接上述方法调用:
User::find(sprintf("id IN (%s)", $ids))->delete();
3条答案
按热度按时间voj3qocg1#
请尝试以下任一种删除多个记录的方法,然后选择您最喜欢的一个:
A)查找并删除:
B)您还可以链接上述方法调用:
C)或者,您可以迭代每条记录,然后将其删除,如Phalcon文档中所示:https://docs.phalconphp.com/en/3.2/db-models#delete-records
D)最后,您可以使用Phalcon PHQL编写一个“原始”SQL语句:
更多信息,请访问:https://docs.phalconphp.com/en/3.2/db-layer#crud
请记住...接受用户输入的记录ID时要非常非常小心(例如:通过GET,或者从允许用户选择记录的窗体/表)。但我认为这是另一个问题的主题。
nfzehxib2#
首先清理输入,确保id数组只接受
int
变量,然后使用下面的代码删除所有记录。yi0zb3m43#