0

我尝试在数组中的代码点火器上的表中插入一行,但出了点问题。

那是数组:

Array
(
    [Date] => 2001-08-15
    [Number] => 962883
    [Time] => 17:40
    [Etc1] => 0
    [Etc2] => 0      
)

这是插入:

$this->db->insert('mytable', $myarray); 

插入了一个新行,但所有列都是空的!试图找到错误,我打印了最后一个查询

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)错误地转义了这些值。

任何想法?

4

3 回答 3

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');
于 2013-07-24T11:08:04.007 回答
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;
  }

我希望这能解决你的问题

于 2013-07-24T03:55:02.743 回答
0

我尝试模拟您的问题,并且能够生成正确的 SQL 语句。

但我在这里粘贴了对我有用的代码:

$data = array
(
    'Date' => '2001-08-15',
    'Number' => '962883',
    'Time' => '17:40',
    'Etc1' => '0',
    'Etc2' => '0'      
);

$this->db->insert('mytable', $data);

让我知道这是否有效 - 如果没有,错误信息是什么。

于 2013-11-16T04:11:19.637 回答