我在网上搜索了很长时间,但没有运气。请帮助或尝试提供一些如何实现这一目标的想法。
我想删除一些数据,如:
$articleIds = '1,2,3,5,8';
$User = new User();
$success = $User->delete($articleIds);
但是,这会产生错误。我该怎么办?
提前致谢。
答案 0 :(得分:3)
尝试以下任何一种删除多条记录的方法,然后选择您最喜欢的记录:
A)找到然后删除:
$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();
C)或者您可以迭代每条记录然后删除它,如Phalcon文档中所示:https://docs.phalconphp.com/en/3.2/db-models#delete-records
D)或者最后,您可以使用Phalcon PHQL编写“原始”SQL语句:
$config = [
'host' => '127.0.0.1',
'username' => 'user',
'password' => 'pass',
'dbname' => 'test'
];
$connection = new \Phalcon\Db\Adapter\Pdo\Mysql($config);
$sql = sprintf("DELETE `users` WHERE `id` IN (%s)", $ids);
$success = $connection->execute($sql);
此处有更多信息:https://docs.phalconphp.com/en/3.2/db-layer#crud
请记住......要非常小心地从用户输入接受记录ID(例如:通过GET,或从允许用户选择记录的表单/表)。但我认为这是另一个问题的主题。
答案 1 :(得分:0)
首先清理您的输入,并确保只有StyledRange
个变量被接受到您的ID数组中。之后,使用以下代码并删除所有记录。
int