我尝试在表格中的代码点火器上插入一行,但是出了点问题。
那是阵列:
Array
(
[Date] => 2001-08-15
[Number] => 962883
[Time] => 17:40
[Etc1] => 0
[Etc2] => 0
)
这就是插入:
$this->db->insert('mytable', $myarray);
插入新行,但所有列都为空! 试图找到de error,我按
打印了最后一个查询echo $this->db->last_query() ." <br>";
我得到了:
INSERT INTO `mytable` (`Date`, `Number`, `Time`, `Etc1`, `Etc2`)
VALUES
('\02\00\00\01\0-\00\08\0-\01\05\0', '\09\06\02\08\08\03\0', '\01\07\0:\04\00\0', '\00\0', '\00\0')
由于某些原因我无法得到,codeigniter(或PHP)错误地转义了这些值。
任何想法?
答案 0 :(得分:0)
首先,您可以像这样更改数组:
$data_array = Array
(
'Date'=> 2001-08-15
'Number' => 962883
'Time' => 17:40
'Etc1' => 0
'Etc2' => 0
);
$this->your_model->insert_data($data_array);
并在模型内部写这样的函数
function insert_data($data=array())
{
$this->db->trans_start();
$this->db->insert('your_table_name',$data);
$this->db->trans_complete();
return TRUE;
}
我希望这能解决你的问题
答案 1 :(得分:0)
$this->db->set('Date', '2001-08-15', FALSE);
$this->db->set('Number', '962883', FALSE);
$this->db->set('Time', '17:40', FALSE);
$this->db->set('Etc1', '0', FALSE);
$this->db->set('Etc2', '0', FALSE);
this->db->insert('mytable');
答案 2 :(得分:0)
我尝试模拟你的问题,并且能够获得正确的SQL语句。
但我在这里粘贴了适用于我的代码:
$data = array
(
'Date' => '2001-08-15',
'Number' => '962883',
'Time' => '17:40',
'Etc1' => '0',
'Etc2' => '0'
);
$this->db->insert('mytable', $data);
让我知道这是否有效 - 如果没有,那么错误信息是什么。