首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MySQL中插入数组值

如何在MySQL中插入数组值
EN

Stack Overflow用户
提问于 2018-05-29 09:04:01
回答 2查看 50关注 0票数 0

如何将数组中的值插入到数据库中的行中?

下面是数组:

代码语言:javascript
复制
  $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_beneficiario数组中使用foreach。但问题是,每个变量都是一个索引数组。我准备了PHP函数来输入这些值

代码语言:javascript
复制
  $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);

但是我不知道以哪种方式插入值,每个值都放在自己的列中。我将非常感谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2018-05-29 09:12:28

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

代码语言:javascript
复制
$rows = array_map(
    null,
    $_POST['nombre-bene'],
    $_POST['ci-bene'],
    $_POST['nacimiento-bene'],
    $_POST['parentezco-bene'],
    $_POST['servicios-bene0'],
    $_POST['plan-tipo']
);

接下来,插入每一行:

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2018-05-29 09:18:41

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

代码语言:javascript
复制
$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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50574994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档