【问题标题】:Medoo delete ID found in array在数组中找到 Medoo 删除 ID
【发布时间】:2015-01-19 00:40:42
【问题描述】:

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

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

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

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

【问题讨论】:

  • delete from users where id in (1,2,3)
  • 虽然这可能适用于 MySQL,但 Medoo 使用不同的语法。您的建议导致“语法错误或访问冲突”...medoo.in/api/delete

标签: php mysqli medoo


【解决方案1】:

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

$database->delete("users", [
    "id" => [123, 124, 125, 126]
]);

【讨论】:

    【解决方案2】:
    $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
        ]
    ]);
    }
    

    【讨论】:

      【解决方案3】:

      见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();
      

      【讨论】:

      • 最好的解决方案已经被提交、尝试和证明。是的,有一个“删除”的帮助页面,它对数组没用。
      猜你喜欢
      • 2018-09-18
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      相关资源
      最近更新 更多