1

MySQLテーブルのデータを更新する関数に配列を渡そうとすると、奇妙なエラーが発生します。

私の引き金

$input_data = array(
  'field0' => 'abc',
  'field1' => '123'
);

// var dump #1
var_dump($input_data);
// gives expected result (2 element array)

$this->user->update_user_info($input_data);

ユーザーモデル

function update_user_info($new_data) {
    // var dump #2
    var_dump($new_data);

    // this gives:
    // array(2) {
    //    ["field0"] => string(3) "abc"
    //    ["field1"]=> string(3) "123"
    // }
    // NULL
}

その終わりのNULLはどこから来ているのですか?これをCodeigniterのアクティブなRecordUpdateクラスで使用しようとしていますが、そのNULLが原因で失敗します。

foreachをループして新しい配列にコピーしようとしましたが、配列に含まれていないように見えても、新しい配列の後にNULL値が続きます。

どんな助けでもいただければ幸いです。

4

2 に答える 2

0

上記の「回答」についてお詫び申し上げます。私はこのサイトに不慣れで、コメント ボタンが表示されませんでした :p

それ以来、私自身の状況の観点からこの問題を解決しましたが、おそらくこれはあなたに当てはまるかもしれません.

前に言ったように、私の問題は同じでした.原因は両方の関数を正しく返していませんでした-二次関数、つまり配列が渡された関数を返しました。

function update_user_info($new_data) {

    // var dump #2
    var_dump($new_data);
    return;

}

しかし、最初の関数では、2番目の関数を呼び出した後に返されませんでした。それが理にかなっており、これがあなたにも役立つことを願っています.

于 2012-06-08T17:27:43.513 に答える
0

The NULL is obviously not in the array; It is printed on a second call to update_user_info() function. You should try to find out why the update_user_info() function is called twice.

于 2012-05-22T17:45:12.277 に答える