Php 使用codeigniter在动态添加到数据库的表中插入多个数据
我有一个动态添加行的表。像这样的 用户可以在每个类别(基本、类型评级和常规)中动态添加行。当他们点击“保存记录”按钮时,数据将存储在数据库中 我将共享一个类别(基本)的代码,仅用于表示其他类别 这就是数据库中的表('t_basic')的外观 查看(body.php)(仅第一类(基本)) 模型(mod.php) 当我运行上面的代码时,我得到了这个错误消息 遇到一个PHP错误 严重性:通知 消息:数组到字符串转换 文件名:database/DB_driver.php 电话号码:1477 我花了两天时间试图找出将每行数据插入数据库的正确方法。这个问题对我来说似乎很棘手,因为我对codeigniter还是新手 如果你知道我的问题的任何解决办法,请告诉我。提前感谢:“)Php 使用codeigniter在动态添加到数据库的表中插入多个数据,php,mysql,database,codeigniter,Php,Mysql,Database,Codeigniter,我有一个动态添加行的表。像这样的 用户可以在每个类别(基本、类型评级和常规)中动态添加行。当他们点击“保存记录”按钮时,数据将存储在数据库中 我将共享一个类别(基本)的代码,仅用于表示其他类别 这就是数据库中的表('t_basic')的外观 查看(body.php)(仅第一类(基本)) 模型(mod.php) 当我运行上面的代码时,我得到了这个错误消息 遇到一个PHP错误 严重性:通知 消息:数组到字符串转换 文件名:database/DB_driver.php 电话号码:1477 我花了两
db->insert('t_basic',$basic_data);
带有$basic_data
的数组必须是关联数组(以字符串作为元素索引键的数组)
在控制器中修改$basic_数据数组:
$basic_data = [
'basic_category' => $this->input->post('basic_category'),
'basic_workscope' => $this->input->post('basic_workscope'),
'basic_i' => $this->input->post('basic_i'),
'basic_e' => $this->input->post('basic_e'),
'basic_pi' => $this->input->post('basic_pi'),
'basic_pa' => $this->input->post('basic_pa'),
'basic_ata_chapter' => $this->input->post('basic_ata_chapter')
];
在CodeIgniter中,您可以使用$this->input->post()
而不是$\u post[]
来检索post数据非常感谢您的回答。我将尝试实施您的建议。$this->input->post()
和$\u post[]
?请参阅此CodeIgniter用户指南:@BanunAryaniinput->post()
的逻辑是相同的,除了input->post()
如果未定义(isset
),则不会显示通知,只会返回null。input->post
还允许XSU过滤。
$basic_data = array();
$basic_category = $_POST["basic_category"];
$basic_workscope = $_POST["basic_workscope"];
$basic_i = $_POST["basic_i"];
$basic_e = $_POST["basic_e"];
$basic_pi = $_POST["basic_pi"];
$basic_pa = $_POST["basic_pa"];
$basic_ata_chapter = $_POST["basic_ata_chapter"];
$basic_data[] = array($id_number, $basic_category, $basic_workscope, $basic_i, $basic_e, $basic_pi, $basic_pa, $basic_ata_chapter);
$this->mod->insert_t_basic($basic_data);
public function insert_t_basic($basic_data) {
if(!empty($basic_data)) {
foreach($basic_data as $value) {
$this->db->insert('t_basic', $basic_data);
}
}
}
$basic_data = [
'basic_category' => $this->input->post('basic_category'),
'basic_workscope' => $this->input->post('basic_workscope'),
'basic_i' => $this->input->post('basic_i'),
'basic_e' => $this->input->post('basic_e'),
'basic_pi' => $this->input->post('basic_pi'),
'basic_pa' => $this->input->post('basic_pa'),
'basic_ata_chapter' => $this->input->post('basic_ata_chapter')
];