[英]phalcon MVC model how can delete data?
我在 .net 上搜索了很長時間,但沒有成功。 請幫助或嘗試提供一些想法如何實現這一目標。
我想刪除一些數據,例如:
$articleIds = '1,2,3,5,8';
$User = new User();
$success = $User->delete($articleIds);
但是,這會出錯。 我應該怎么辦?
提前致謝。
嘗試以下任何一種刪除多條記錄的方法,並選擇您最喜歡的方法:
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,或從允許用戶選擇記錄的表單/表格)。 但我認為這是另一個問題的話題。
首先清理您的輸入並確保只有int
變量被接受到您的 id 數組中。 之后使用以下代碼並刪除所有記錄。
$ids = [1, 2, 3];
$records = User::find([
'conditions' => 'id IN (:ids:)',
'bind' => array('ids' => implode(', ', $ids)),
]);
$records->delete();
$models = VoucherThemeModel::find([
'conditions' => 'voucher_theme_id IN ({ids:array})',
'bind' => ['ids' => $voucher_ids]
]);
$models->delete();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.