如何在PDO MySQL中同时插入两个不同的数组?

问题描述

我在处理PDO插件时遇到了麻烦。 我想在数据库中插入一个多维数组,我设法这样做。 但是,我也想插入一个完全不同的数组,将第一个数组断开连接到同一数据库行(这意味着相同的INSERT查询)。 第一个多维数组= $ _POST ['training'] 第二个数组= $ training_diploma 有点难以解释。这是代码

$id = "1";
$training_diploma = ("master","bachelor");
$id_training_key = $id_training_key = $id.'_'.$training_diploma; (return: 1_master)

$sql = "INSERT INTO users_resumes (id,resume_category,id_training_key,training_diploma,training_school,training_level,training_start_date,training_end_date) VALUES ($id,'Training',$id_training_key,:training_diploma,:training_school,:training_level,:training_start_date,:training_end_date)";
$stmt= $pdo->prepare($sql);
foreach($_POST['training'] as $params){
   $stmt->execute($params);
}

任何帮助都非常欢迎!!!抢劫!

解决方法

您需要迭代$training_diploma数组和$_POST数组。最好在查询中包含idid_training_key作为参数,这样就不必为每组值准备新的查询:

$id = "1";
$training_diploma = array("master","bachelor");

$sql = "INSERT INTO users_resumes (id,resume_category,id_training_key,training_diploma,training_school,training_level,training_start_date,training_end_date) VALUES (:id,'Training',:id_training_key,:training_diploma,:training_school,:training_level,:training_start_date,:training_end_date)";
$stmt= $pdo->prepare($sql);
foreach($_POST['training'] as $params) {
    foreach ($training_diploma as $diploma) {
        $stmt->execute(array_merge($params,array('id' => $id,'id_training_key' => $id . '_' . $diploma)));
    }
}