2013-07-24 98 views
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') 

出于某种原因,我不能得到的,笨(或PHP)被错误地转义值。

任何想法?

+0

你的数组是如何在PHP中声明的?数据来自哪里? – Jeemusu

+0

它从csv文件读取,我已经使用print_r来检查数据是否正常,没有问题。 –

+0

什么是错误/错误输出? – lewisjb

回答

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; 
    } 

我希望这将解决您的问题

+0

它没有工作,同样的问题。 –

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'); 
+0

有更好的,但仍然无法正常工作。对echo $ this-> db-> last_query()进行此更改和取消输出是一个不带转义的sql查询,但在mysql表中插入的记录也是空的。如果我将echo $ this-> db-> last_query()的SQL输出复制并粘贴到MyADMIN中,则记录将被正确插入。 –

0

我试着模拟你的问题,并能够得到正确的SQL语句生成。

但是我在这里粘贴为我工作的代码:

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

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

让我知道这是否正常工作 - 如果没有,该错误信息是什么。