问题描述
我在处理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
数组。最好在查询中包含id
和id_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)));
}
}