【问题标题】:How to insert array of values in MySQL with PHP如何使用 PHP 在 MySQL 中插入值数组
【发布时间】:2018-05-29 09:18:40
【问题描述】:

如何将数组中的值插入到数据库中它们自己的行中?

这是数组:

  $nombre_bene = $_POST['nombre-bene'];
  $cedula_bene = $_POST['ci-bene'];
  $nacimiento_bene = $_POST['nacimiento-bene'];
  $parentezco_bene = $_POST['parentezco-bene'];
  $servicios_bene = $_POST['servicios-bene0'];
  $id_titular =  $_POST['plan-tipo'];

  $data_beneficiario = array(
    'nombre' => $nombre_bene,
    'cedula' => $cedula_bene,
    'nacimiento' => $nacimiento_bene,
    'parentezco' => $parentezco_bene,
    'id' => $id_titular,
    'servicios' => $servicios_bene
  );

问题是每个 $_POST 都以数组的形式出现(因为我需要它)

我尝试在 $data_beneficirio 数组中使用 foreach。但问题是每个变量都是一个索引数组。我正在使用准备好的 PHP 函数来检测值

  $statement2 = $connection->prepare(" INSERT INTO beneficiarios (nombre_bene, cedula_bene, fechan_bene, parentezco, id_titular_bene, servicios_adicionales) VALUES(?,?,?,?,?,?) ");
      $statement2->bind_param("ssssis", $nombre_bene, $cedula_bene, $nacimiento_bene, $parentezco_bene, $id_titular, $servicios_bene);

但我不知道以哪种方式插入值以使每个值都进入自己的列。我将不胜感激!

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    首先将各个字段数组组合成行。

    $rows = array_map(
        null,
        $_POST['nombre-bene'],
        $_POST['ci-bene'],
        $_POST['nacimiento-bene'],
        $_POST['parentezco-bene'],
        $_POST['servicios-bene0'],
        $_POST['plan-tipo']
    );
    

    接下来,插入每一行:

    for ($rows as $row) {
        $statement = $connection->prepare('insert into beneficiarios (nombre_bene, cedula_bene, fechan_bene, parentezco, id_titular_bene, servicios_adicionales) values (?,?,?,?,?,?)');
        $statement->bind_param("ssssis", $row[0], $row[1], $row[2], $row[3], $row[4], $row[5]);
        $statement->execute() or die $connection->error;
    }
    

    【讨论】:

      【解决方案2】:

      假设每个数组具有相同数量的条目,您可以这样做。注意我使用array_values 来保证所有数组都具有相同的索引:

      $nombre_bene = array_values($_POST['nombre-bene']);
      $cedula_bene = array_values($_POST['ci-bene']);
      $nacimiento_bene = array_values($_POST['nacimiento-bene']);
      $parentezco_bene = array_values($_POST['parentezco-bene']);
      $servicios_bene = array_values($_POST['servicios-bene0']);
      $id_titular =  array_values($_POST['plan-tipo']);
      
      $statement2 = $connection->prepare(" INSERT INTO beneficiarios (nombre_bene, cedula_bene, fechan_bene, parentezco, id_titular_bene, servicios_adicionales) VALUES(?,?,?,?,?,?) ");
      foreach (array_keys($nombre_bene) as $k) {
          $statement2->bind_param("ssssis", $nombre_bene[$k], $cedula_bene[$k], $nacimiento_bene[$k], $parentezco_bene[$k], $id_titular[$k], $servicios_bene[$k]);
          $statement2->execute();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2016-12-21
        • 2011-08-11
        • 2015-08-02
        • 1970-01-01
        • 2017-12-07
        • 1970-01-01
        相关资源
        最近更新 更多