Codeigniter数据库插入 - 不使用数组

时间:2014-11-24 17:05:59

标签: php mysql codeigniter codeigniter-2

我正在尝试通过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 ()

我无法弄清楚为什么它没有正确使用数组键的第一个()和值。

4 个答案:

答案 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。