2016-10-18 7 views
0

デフォルト値はありません。のCodeIgniter insert_batch:フィールド「exp_userは、」私は私のDBの「経費」テーブルに行として配列を挿入しようとしています

​​

をし、私はこのエラーを取得しておきます:

A Database Error Occurred
Error Number: 1364
Field 'exp_user' doesn't have a default value
INSERT INTO expenses () VALUES(),(),(),(),(),(),(),(),(),(),(),()
Filename: models/Expenses_model.php
Line Number: 26

これは私のテーブルの構造である:

enter image description here

そして、これは私が挿入しようとしているものの例である:

array(12) { 
    ["exp_user"] "1" 
    ["exp_date"] "2016-10-18" 
    ["exp_date_request"] "2016-10-18" 
    ["exp_client"] "Potato" 
    ["exp_provider"] "Miew" 
    ["exp_amount"] "1" 
    ["exp_currency"] "₪" 
    ["exp_budget"] "budget2" 
    ["exp_method"] "cc" 
    ["exp_frequency"] "Monthly" 
    ["exp_expenditure"] "asdasdas asdas dsa as" 
    ["exp_charge_client"] NULL 
} 
+1

$this->db->insert('expenses', $expenses); 

かに電話を変更しますか? –

答えて

2

変数$expensesはあなたの例を持っている配列である場合:

あなたは insert_batchでそれを使用することはできません
$expenses = array(
    "exp_user" => "1", 
    "exp_date" => "2016-10-18", 
    "exp_date_request" => "2016-10-18", 
    "exp_client" => "Potato", 
    "exp_provider" => "Miew", 
    "exp_amount" => "1", 
    "exp_currency" => "₪", 
    "exp_budget" => "budget2", 
    "exp_method" => "cc", 
    "exp_frequency" => "Monthly", 
    "exp_expenditure" => "asdasdas asdas dsa as", 
    "exp_charge_client" => NULL 
); 

関数(insert_batch関数は2番目のパラメータとして(データの)配列の配列を取得する予定があるため)。

基本的にinsert_batch関数は、(insert関数をループせずに)複数の行を挿入する機能を提供します。

$expenses = array(
    array(
     "exp_user" => "1", 
     "exp_date" => "2016-10-18", 
     "exp_date_request" => "2016-10-18", 
     "exp_client" => "Potato", 
     "exp_provider" => "Miew", 
     "exp_amount" => "1", 
     "exp_currency" => "₪", 
     "exp_budget" => "budget2", 
     "exp_method" => "cc", 
     "exp_frequency" => "Monthly", 
     "exp_expenditure" => "asdasdas asdas dsa as", 
     "exp_charge_client" => NULL 
    ), 
    array(
     "exp_user" => "1", 
     "exp_date" => "2016-10-18", 
     "exp_date_request" => "2016-10-18", 
     "exp_client" => "Potato", 
     "exp_provider" => "Miew", 
     "exp_amount" => "1", 
     "exp_currency" => "₪", 
     "exp_budget" => "budget2", 
     "exp_method" => "cc", 
     "exp_frequency" => "Monthly", 
     "exp_expenditure" => "asdasdas asdas dsa as", 
     "exp_charge_client" => NULL 
    ), 
    array(
     "exp_user" => "1", 
     "exp_date" => "2016-10-18", 
     "exp_date_request" => "2016-10-18", 
     "exp_client" => "Potato", 
     "exp_provider" => "Miew", 
     "exp_amount" => "1", 
     "exp_currency" => "₪", 
     "exp_budget" => "budget2", 
     "exp_method" => "cc", 
     "exp_frequency" => "Monthly", 
     "exp_expenditure" => "asdasdas asdas dsa as", 
     "exp_charge_client" => NULL 
    ) 
); 

そして今、それは insert_batchを使用する意味があります:あなたはそれのために多次元配列を使用することができます。

あなたは1つだけのレコードを持っている場合は、あなたがinsert機能を使用することができます挿入する:あなたは経費の配列を表示することができます

$this->db->insert_batch('expenses', array($expenses)); 
関連する問題