phalcon MVC模型如何删除数据?

时间:2017-12-05 03:55:20

标签: php phalcon

delAction

我在网上搜索了很长时间,但没有运气。请帮助或尝试提供一些如何实现这一目标的想法。

我想删除一些数据,如:

$articleIds = '1,2,3,5,8';
$User    = new User();
$success = $User->delete($articleIds);  

但是,这会产生错误。我该怎么办?

提前致谢。

2 个答案:

答案 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