Php CodeIgniter:插入具有活动记录的数组时出错

Php CodeIgniter:插入具有活动记录的数组时出错,php,mysql,codeigniter,Php,Mysql,Codeigniter,试图在CodeIgniter Active reacords的帮助下插入数组。表只有两列id(autoincrement pk column)和value $data数组我正在通过Google Contact API响应填充。这里我是如何在控制器中填充数组$data并将其传递给模型的 $val = $client->getIo()->authenticatedRequest($req);//Getting response from Google Contact API. $xml

试图在CodeIgniter Active reacords的帮助下插入数组。表只有两列
id(autoincrement pk column)
value

$data数组我正在通过Google Contact API响应填充。这里我是如何在控制器中填充数组$data并将其传递给模型的

$val = $client->getIo()->authenticatedRequest($req);//Getting response from Google Contact API.
$xml = simplexml_load_string($val->getResponseBody());
$result = $xml->xpath('//gd:email');  //Fetching email addressed from the response
foreach ($result as $title) {
            array_push($gmailContacts, mysql_real_escape_string($title->attributes()->address));
 }
$this->load->model('gmailContacts');
$this->gmailContacts->saveContacts($gmailContacts);

型号代码为

  function saveGmailContacts($data=array()) 
  {
    $this->db->insert('contact_table',$data);
  }
Error Number: 1054

Unknown column '0' in 'field list'

INSERT INTO `importedgmailcontacts` (`0`, `1`, `2`, `3`, `4`, `5`)VALUES ('VALUE1', 'VALUE2', 'VALUE3','VALUE4', 'VALUE5') 
错误为

  function saveGmailContacts($data=array()) 
  {
    $this->db->insert('contact_table',$data);
  }
Error Number: 1054

Unknown column '0' in 'field list'

INSERT INTO `importedgmailcontacts` (`0`, `1`, `2`, `3`, `4`, `5`)VALUES ('VALUE1', 'VALUE2', 'VALUE3','VALUE4', 'VALUE5') 

我在XAMPP1.7.7中使用Codeigniter,其中包含PHP5.3.3和MySql 5.0,Codeigniter假设当您传递这样的数组时,您设置的是一行多列。数组键是列名,值是行中的内容。如果要使用ActiveRecord类,需要多次调用insert,每行一次


您最好使用自己的查询进行此操作。

您需要使用键值对来完成此操作。请发布$data的内容。您似乎没有命名列。我已经更新了我的问题。您的意思是在foreach中运行我自己的查询吗?您可以使用foreach并在循环中使用$this->db->insert(),也可以编写一个SQL查询来一次插入所有行。另一种选择是使用具有性能和安全优势的存储过程。我如何编写一个SQL查询来一次插入所有行?文档中有,但很难确定您是新手。基本上,它插入到
列名
)值((row1val),(row2val),(row3val));您还应该阅读CodeIgniter数据库文档,了解如何转义这些值以保护您的站点不受损害。