【问题标题】:How to INSERT simultaneously two different arrays in PDO MySQL?如何在 PDO MySQL 中同时插入两个不同的数组?
【发布时间】:2020-12-12 15:23:56
【问题描述】:

我在使用 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);
}

非常欢迎任何帮助!感谢战利品!

【问题讨论】:

    标签: php arrays multidimensional-array pdo


    【解决方案1】:

    您需要迭代$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)));
        }
    }
    

    【讨论】:

    • 这种方式效果很好!非常感谢@Nick!
    • @HymedGhenai 不用担心 - 我很高兴能提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多