1

codeigniter アプリケーションを実行していますが、この単純な挿入がうまく機能しません。

if(!$this->db->insert('myTable',$entry)){
    $p3 = 0;
}else{
    echo $this->db->last_query();
    var_dump($this->db->_error_message());
}

「else」句のデバッグでは、常にエラー メッセージに空の文字列が表示されます。phpmyadmin で last_query をテストすると、挿入がうまく機能します。

しかし、「else」が起動されたとしても、通常アプリを実行すると挿入が行われず、リクエストが成功したことを意味します。

どんな手掛かり ?

UPDATE : $entry 配列の例:

$entry = array(
    'id' => '',
    'id_devis' => $current[0]->id,
    'metier' => $_POST[$i+1 . '_create_metier'],
    'days' => $_POST[$i+1 . '_create_daycount'],
    'price' => $_POST[$i+1 . '_create_price'],
    'cr_date' => date('Y-m-d H:i:s'),
    'user' => ''
);

$current は別のテーブルの抽出 ($this->db->get を使用) であり、last_query() のエコーを使用して挿入できるため、すべてのデータに問題はありません。

4

2 に答える 2

1

置く

error_reporting(E_ALL);
ini_set('display_errors', '1');

インサートのある行の前。エラー メッセージが表示されます。

私の推測では、ID に不正な値を挿入しようとしていると思われます。考えられる理由: - 空であってはなりません。- 文字列にすることはできません (つまり、型が整数の場合)

ほとんどの場合、データベース内の ID は int 型で、自動インクリメント フィールドです。その場合、ID を挿入しようとしないでください。それはあなたのために作成されます。

于 2013-01-30T15:26:56.957 に答える
1

問題を発見しただけで、ありませんでした。スクリプトは、コードに挿入したばかりの行を削除していましたが、挿入は成功しました。ご回答ありがとうございます。

于 2013-01-30T16:03:26.540 に答える