-2

我有另一个使用 Medoo 进行数据库功能的编码器提供的脚本。我有一个脚本可以一次删除一个项目,但现在我需要根据从复选框提交的列表删除多行。例如:

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

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

不幸的是,为 Medoo 提供的文档和示例很少,并且不包括 IN 示例。所以我正在寻找建议。

4

3 回答 3

1

真的很简单。只需提供一个带有 id 的数组。

$database->delete("users", [
    "id" => [123, 124, 125, 126]
]);
于 2015-01-29T09:03:44.913 回答
0
$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
    ]
]);
}
于 2015-01-20T05:50:20.810 回答
0

见 medoo 删除方法http://medoo.in/api/delete

$database->delete("account", array(
    "id" => array(123, 124, 125, 126)
));

或者

$delete = "123, 124, 125";        

$ids_array= explode(',', $delete);  

foreach($ids_array as $id) {        
 $database->delete("users", array("id" => $id));
}

或者

$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();
于 2015-02-09T16:31:30.780 回答