【问题标题】:JSON/PHP Array to MYSQL insert [closed]JSON / PHP数组到MYSQL插入[关闭]
【发布时间】:2013-02-26 07:30:30
【问题描述】:

我有一个 JSON 数组,我将其转换为 PHP 数组,从而生成一系列 ID,例如:

   Array
   (
      [0] => 2343
      [1] => 4345
      [2] => 4432
      [3] => 3456
   )

我想将这些图像 ID 插入到具有公共画廊 ID 的数据库中 - 如果我要单独编写每个查询,结果如下:

$query1 = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ('2343', '1')";
$query2 = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ('4345', '1')";
$query3 = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ('4432', '1')";
$query4 = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ('3456', '1')";

我如何以某种方式循环它以使其尽可能简单高效?任何帮助将不胜感激。

【问题讨论】:

    标签: php mysql arrays json insert


    【解决方案1】:

    试试这个

    $sql = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ";
    foreach($ids as $id) {
        $sql .= "('$id', '1'),";
    }
    $sql = rtrim($sql,",");
    

    【讨论】:

    • 我花了一段时间才弄清楚你在这里做什么 - 但它的作用就像一个魅力,而且简单。谢谢,nauphal。
    【解决方案2】:

    是时候使用准备好的语句了!

    $pdo = new \PDO('...');
    $sth = $pdo->prepare("INSERT INTO gallery_media (media_id, gallery_id) VALUES (?, '1')");
    foreach ($data_array as $value)
        $sth->execute(array($value));
    

    【讨论】:

      【解决方案3】:

      只需遍历数组。例如:

       foreach ($your_array as $item){
           $query = sprintf("INSERT INTO gallery_media (media_id, gallery_id) VALUES (%d,1)",$item);
           //Now execute query
       }
      

      【讨论】:

        【解决方案4】:

        简单

        foreach ($id_array as $id) {
          $query = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ('$id', '1')";
          // execute your query
        }
        

        【讨论】:

          【解决方案5】:

          试试这个:

          foreach( (array) $data_arr as $key => $value )
          {
          $query = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ('$value', '1')";
          }
          

          【讨论】:

            【解决方案6】:

            我认为最短的方法是使用 implode func 一次创建整个查询。试试这样的:$query = "INSERT INTO gallery_media (media_id, gallery_id) VALUES ('".implode("','1'),",$vals_array)."')";

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-10-11
              • 2014-03-27
              • 2016-02-10
              • 2014-03-12
              • 2015-12-23
              • 1970-01-01
              相关资源
              最近更新 更多