我正在尝试通过codeigniter将一些数据插入数据库,但是我遇到了一些奇怪的错误。有谁知道原因:
打印时我的插入数组($ datainsert)如下:
Array ( [online_name] => Discount Store
[online_nameKey] => d
[storeGroup_ID] =>
[CJ_ID] => 123456
[online_tag] => Health and Medical
[online_businessType] => 0
[online_businessTypeSub] => 0
[online_homepage] => http://www.discountstore.com
[store_ChainID] =>
[savingsdotcom_ID] => 0 )
尝试打印我使用的插页:
echo $DB1->_insert('stores_online', $datainsert);
结果是:
INSERT INTO stores_online (Discount Store, d, , 123456, Health and Medical, 0, 0, http://www.discountstore.com, , 0) VALUES ()
我无法弄清楚为什么它没有正确使用数组键的第一个()和值。
答案 0 :(得分:0)
试试此代码
$datainsert=Array ( [online_name] => Discount Store,
[online_nameKey] => d,
[storeGroup_ID] => something,
[CJ_ID] => 123456 ,
[online_tag] => Health and Medical ,
[online_businessType] => 0 ,
[online_businessTypeSub] => 0 ,
[online_homepage] => http://www.discountstore.com ,
[store_ChainID] => ,
[savingsdotcom_ID] => 0
) ;
$this->db->insert('stores_online', $datainsert);
答案 1 :(得分:0)
使用
$this->db->insert('stores_online', $datainsert);
而不是
echo $DB1->_insert('stores_online', $datainsert);
答案 2 :(得分:0)
我知道问题是一年多了,但我遇到了同样的问题,我通过这种方式手动创建查询来解决它:
public function add($data)
{
$query = 'INSERT INTO myTable (';
// (Column1, Column2, Column3,
foreach($data as $key => $column)
$query .= $key . ',';
// Removes the last comma
// Column3, == Column3) VALUES(
$query .= rtrim($query, ',') . ') VALUES(';
// Value1, Value2, Value3,
foreach($data as $key => $column)
$query .= "'" . $column . "',";
// Removes the last comma and closes the query
$query .= rtrim($query, ',') . ')';
// Result: INSERT INTO (Column1, Column2, Column3) VALUES ('VALUE1', 'VALUE2', 'VALUE3')
return $query;
}
答案 3 :(得分:0)
这需要做:
echo $DB1->_insert('stores_online', array_keys($datainsert), $datainsert);
P.S。这适用于CI 2.X,我没有测试其他版本的CI。