gpt4 book ai didi

mysql - MYSQL中循环遍历数组并执行语句

转载 作者:行者123 更新时间:2023-11-29 17:51:21 28 4
gpt4 key购买 nike

是否可以在mysql中循环遍历这个数组并执行删除语句,其中category_id列等于下面该数组中循环的当前值。

      $row =   [
'type' => '3',
'name' => 'Warez',
'category_id' => 'IAB26-2',
'parent_category_id' => 'IAB26'
],
[
'type' => '3',
'name' => 'Spyware/Malware',
'category_id' => 'IAB26-3',
'parent_category_id' => 'IAB26'
],
[
'type' => '3',
'name' => 'Copyright Infringement',
'category_id' => 'IAB26-4',
'parent_category_id' => 'IAB26'
],
[
'type' => '3',
'name' => 'Uncategorized',
'category_id' => 'IAB24'
]

我已经尝试过了

 foreach($row as $value) {
$this->execute('DELETE from categories WHERE category_id = '.$value['category_id'].'');
}

似乎没有按预期工作。对于这种操作有更好的Sql命令吗?

最佳答案

您的代码不安全,因为可以注入(inject) SQL。因此,攻击者可能会在您的 SQL 查询中执行他想要的任何操作。

如果这确实是 CakePHP 代码,为什么不使用 ORM?您显然应该阅读https://book.cakephp.org/3.0/en/orm.html表对象和删除数据部分。如果没有,请不要使用错误的标签。

假设这是在表对象中完成的,最简单的方法是:

$ids = Hash::extract($data, '{n}.category_id');
if (!empty($ids)) {
$this->deleteAll([
'category_id IN' => $ids
]);
}

关于mysql - MYSQL中循环遍历数组并执行语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49308551/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com