0

問題: IDフィールド、主キー、auto_increment を追加すると、insert ステートメントがテーブルにレコードを挿入しなくなりました。

idフィールドを追加する前は、一意の文字列を持つ varchar フィールドを主キーとして使用していました。しかし、ここで、整数、プライマリ キー、自動インクリメントのストレート ID を追加したいと思います。これについては、ウェブ上で何十もの質問があるはずです。

代わりに、すべての質問は$this->db->insert_id(). しかし$this->db->insert_id()、読み取りに似ており、挿入ステートメントを成功させるために何もしません。

今、配列呼び出し $fielddata を構築し、各配列要素にフォームからのデータを入力します (非常に単純化されています):

$fielddata['member_id'] = 'abcdefghi12345';
$fielddata['name'] = 'John Smith';
$fielddata['email'] = 'jsmith@gmail.com';

$this->db->insert('members', $fielddata);

私は次のようなことを試しました:

$fielddata['id'] = '';

...また、

$fielddata['id'] = 0;

...しかし、何も機能しません。

更新: 私の問題は、実際にはフォームから渡していない投稿要素に配列要素を設定しようとしていたことでした。何らかの理由で CodeIgniter はエラーをスローしなかったので、問題はクエリ行にあるに違いないと考え続けました。そうではありませんでした。フォーム フィールドをフォームに追加し、すべての配列要素をすべてのフォーム要素に一致させたら (もちろん、テーブル フィールドではない「送信」やその他の非表示フィールドを除外します)、insertうまくいきました。

4

2 に答える 2

1

テーブル構造を表示できますか?

test テーブル:
id (AUTO INC 10)
member_id (VARCHAR 10)
name (VARCHAR 10)
email (VARCHAR 15)

$fielddata['member_id'] = 'abcdefghi12345';
$fielddata['name'] = 'John Smith';
$fielddata['email'] = 'jsmith@gmail.com';

$this->db->insert('test', $fielddata);

テーブル名「test」を作成し、これが機能しているかどうかをテストします..

于 2013-10-06T03:05:30.573 に答える