mysql - 如何单击一次将数据插入两个 MySql 表?
问题描述
如何通过单击将数据插入两个 MySql 表?
型号代码
public function insertCSV($data)
{
$this->db->insert('question_tb', $data);
$this->db->insert('option_tb', $data);
return TRUE;
}
控制器代码
public function import(){
if (isset($_POST["import"])) {
$this->load->model('Welcome_model', 'welcome');
$exam_id = $this->welcome->get_max_exam_id();
$filename = $_FILES["file"]["tmp_name"];
if ($_FILES["file"]["size"] > 0) {
$file = fopen($filename, "r");
while (($importdata = fgetcsv($file, 10000, ",")) !== false) {
$data = [
'question' => $importdata[0],
'answer' => $importdata[1],
'exam_id' => $exam_id,
];
while (($importdata = fgetcsv($file, 10000, ",")) !== false) {
$data = [
'option1' => $importdata[2],
'option2' => $importdata[3],
'option3' => $importdata[4],
'exam_id' => $exam_id,
];
$insert = $this->welcome->insertCSV($data);
}
//fclose($file);
fclose($file);
redirect('upload/index');
}
}
}
}
解决方案
有两种选择
- 在模型中创建两个函数并在控制器中调用这些函数。
模型:
function a($data1){
$this->db->insert('table1', $data1);
}
function b($data2){
$this->db->insert('table2', $data2);
}
控制器 :
function insert(){
$this->model_name->a($data1);
$this->model_name->b($data2);
}
- 在模型中创建一个函数并传递两个数组数据
模型:
function a($data1, $data2){
$this->db->insert('table1', $data1);
$this->db->insert('table2', $data2);
}
控制器:
function insert(){
$this->model_name->a($data1, $data2);
}
推荐阅读
- swift - 快速重新安装应用程序后无法将文件上传到icloud
- c++ - 无法初始化变量
- c++ - 发生错误时如何终止应用程序?
- javascript - 如果我删除文件然后再次尝试上传文件,则节点 js 的 multer 问题
- node.js - 在 NextJS 和 ExpressJS 系统中使用 Firebase 进行身份验证的最佳流程是什么
- docker - Docker go image - 无法获取 - x509:由未知权威签署的证书
- haskell - 在 Haskell 语言的 where 绑定中使用守卫
- html - 带有'text-inside'属性CSS的进度条
- javascript - 如何在 vue.js 中将数组长度传递给另一个组件(从子组件到父组件)?
- mysql - 无法在 Fedora 上安装 MYSQL - repo.mysql.com 上的 Curl 错误 TIMEOUT