Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数组中找到Medoo delete ID_Php_Mysqli_Medoo - Fatal编程技术网

Php 在数组中找到Medoo delete ID

Php 在数组中找到Medoo delete ID,php,mysqli,medoo,Php,Mysqli,Medoo,我有另一个程序员提供的脚本,使用Medoo实现数据库功能。我有一个每次删除一个项目的脚本,但现在我需要根据从复选框提交的列表删除多行。例如: $delete = "123, 124, 125, 126"; global $db; $sql = db::query("DELETE FROM users, [id IN '$delete']"); 不幸的是,为Medoo提供的文档和示例非常稀少,并且没有在示例中介绍。所以我在寻找建议。非常简单。只需提供一个带有ID的数组 $delete = "1

我有另一个程序员提供的脚本,使用Medoo实现数据库功能。我有一个每次删除一个项目的脚本,但现在我需要根据从复选框提交的列表删除多行。例如:

$delete = "123, 124, 125, 126";

global $db;
$sql = db::query("DELETE FROM users, [id IN '$delete']");

不幸的是,为Medoo提供的文档和示例非常稀少,并且没有在示例中介绍。所以我在寻找建议。

非常简单。只需提供一个带有ID的数组

$delete = "123, 124, 125";        // original string

$delete = explode(',',$delete);   // convert to array

foreach($delete as $id) {         // walk wthrough array items

$database->delete("users", [      // run medoo query 
"AND" => [
    "id" => intval($id)          // if whitespaces, make an integer
    ]
]);
}
$database->delete("users", [
    "id" => [123, 124, 125, 126]
]);
参见medoo删除方法

或者

$ids_array= explode(',', '123, 124, 125'); 
array_walk($ids_array, function($value, $key) use (&$database){
   $database->delete("users", array("id" => $value));
});
您可以检查最后执行的查询:

echo $database->last_query();

delete from users where id in(1,2,3)
虽然可以使用MySQL,但Medoo使用不同的语法。您的建议会导致“语法错误或访问冲突”。。。最好的解决方案已经提交、尝试和证明。是的,有一个关于“删除”的帮助页面,它对数组没有用处。
$ids_array= explode(',', '123, 124, 125'); 

function delete_by_id($value, $key){
  global $database;
  $database->delete("users", array("id" => $value));
}

array_walk($ids_array,"delete_by_id");
$ids_array= explode(',', '123, 124, 125'); 
array_walk($ids_array, function($value, $key) use (&$database){
   $database->delete("users", array("id" => $value));
});
echo $database->last_query();