1

さて、MySQL データベースに挿入する必要がある配列内のエントリの巨大なリスト (500 以上) があります。

次のように、配列にデータを入力するループがあります。

$sms_to_insert[] = array(
    'text' => $text,
    'contact_id' => $contact_id,
    'pending' => $status,
    'date' => $date,
    'user_id' => $this->userId,
    'sent' => "1"
);

そして、構築された insert_batch() 関数を使用してデータベースに送信します。

public function add_sms_for_user($id, $sms) {
    //$this->db->delete('sms', array("user_id" => $id)); Irrelevant
    $this->db->insert_batch('sms', $sms); // <- This!
}

表示されるエラー メッセージは次のとおりです: 列の数が行 1 の値の数と一致しません。

さて、それはまったく意味がありません。列は配列内のキーと同じで、値はキーの値です。では、なぜ機能しないのでしょうか。

何か案は?

4

1 に答える 1

2

user_idnull状況によっては、それがエラーの原因であることが判明しました。

編集: insert_batch() を、配列キーに対して insert() を実行するループに置き換えると、より明確なエラー メッセージが表示されます。

于 2012-05-20T20:12:58.883 に答える