php - 如何在 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
数组。最好在查询中还包含id
andid_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)));
}
}
推荐阅读
- reactjs - “此快递不可调用。'Boolean' 类型没有调用签名”
- python - 在 Python 中,使用 Anaconda 重新安装 graphviz 的最佳方法
- r - 在比较 R 中的最大值的两列时如何排除一个值
- python - Python 3 中的 Unicode 只显示问号
- javascript - 寻找有关角度功能模块之间路由的指针
- flutter - 构建失败并出现异常。颤振框架
- python - 将两个数据帧相互连接的问题
- java - 在 TEIID 中合并两个 Java 对象
- python - 如何在 Python 中使用 Kullback-Leibler 方法最小化 Weibull 分布的参数?
- html - 为什么我的光标不会更改为自定义图像?