我正在尝试从表单中的字段在mysql表中插入数据。但是,字段是动态分配的,这意味着名称是通过编程设置的。以下是此示例
<?php for ($i=1; $i<=$nombre_parents_arr; $i++): ?>
<div class="form-group">
<?php echo form_label('Nom' . " " . $i) ; ?>
<?php
$data = array(
'class' => 'form-control',
'name' => 'nom' . $i,
'rows' => '3',
'placeholder' => 'Merci de preciser les infos ici'
);
?>
<?php echo form_textarea($data); ?>
</div>
在我的模型中,我需要获取帖子并将其存储在数据库中。我做了以下
public function fill_family(){
$number = $this->input->post('number');
$data = array(
'user_id' =>$this->session->userdata('user_id')
);
for($i=1; $i<=$number; $i++){
array_push($data, $this->input->post('nom' . $i));
}
$insert_data = $this->db->insert('temp', $data);
//var_dump($data);
return $insert_data;
}
单击我的表单上的提交时,我在浏览器中收到以下错误。
错误号:1064
您的SQL语法有误。检查与您的> MySQL服务器版本相对应的手册,以在第1行的'0,1,2)VALUES('42','samer1','samer2','samer3')'附近使用正确的语法
插入
temp
(user_id
,0,1,2)值('42','samer1','samer2',>'samer3')我将表中的列重命名为user_id,0、1和2,因为它是在查询中生成的,但仍无法正常工作。
我的猜测是,这与不知道列的正确名称有关,因此我在模型中的for循环中执行了此操作
'nom' . $i => $this->input->post('nom' . $i);
但是我从mysql保留了相同的错误。谁能为我提供我的错误根源的线索?
谢谢
最佳答案
更改查询-
$q=0;
foreach($this->input->post('number') as $number)
{
if($number!='')
{
$data = array(
"user_id" =>$this->session->userdata('user_id'),
'nom' . $q =>$this->input->post('value_of_html_name_attribute ')[$q],
'nom' . $q =>input->post('value_of_html_name_attribute ')[$q],
'nom' . $q =>input->post('value_of_html_name_attribute ')[$q],
);
$this->db->insert('temp',$data);
}
$q++;
}
希望这会成功!
关于php - 将值发布到MySQL数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36528962/