Php 在数组中找到Medoo delete ID
我有另一个程序员提供的脚本,使用Medoo实现数据库功能。我有一个每次删除一个项目的脚本,但现在我需要根据从复选框提交的列表删除多行。例如: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
$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();