Php CodeIgniter:插入具有活动记录的数组时出错
试图在CodeIgniter Active reacords的帮助下插入数组。表只有两列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
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数据库文档,了解如何转义这些值以保护您的站点不受损害。