0

実際、これはすでに機能していて、何を変更したのかわからないため、この問題が発生しました。ほぼすべてを試しました。

ケース:
次のクエリがあります。保存したいコンテンツが新しい場合、変数$DB-idは空の文字列です。フィールドmodule_idは私の主キーです。何が起こるかというと、このクエリは常にmodule_id=>0で行を更新します。

問題
主キーとして空の変数を渡すと、新しい行を挿入するのではなく、常に行0が更新されます。

$this->db->query("INSERT INTO   modules_text 
                                (   
                                module_id,
                                module_content,
                                module_page_idx, 
                                module_post_id
                                )
                  VALUES        (
                                '{$DB_id}',
                                '{$content['text']}',
                                '{$content['idx']}',
                                '{$post_id}'
                                )
                  ON DUPLICATE KEY
                  UPDATE        module_content  = '{$content['text']}',
                                module_page_idx = '{$content['idx']}'
                ");

誰かがMYSQLに新しい行を作成するように指示する方法を知っていますか?どんな助けでも大歓迎です!!!! どうもありがとうございます!!!

Saludos Sacha!

4

2 に答える 2

1

主キーフィールドを自動インクリメントに設定する必要がある場合があります。例を以下に示します。

CREATE TABLE tablename (
 id MEDIUMINT NOT NULL AUTO_INCREMENT,
 name CHAR(30) NOT NULL,
 PRIMARY KEY (id)) 
于 2010-12-01T23:56:51.433 に答える
-1

UPDATEにWHEREを与える必要があると思いますか?
例えば:

$this->db->query("INSERT INTO   modules_text 
                                (   
                                module_id,
                                module_content,
                                module_page_idx, 
                                module_post_id
                                )
                  VALUES        (
                                '{$DB_id}',
                                '{$content['text']}',
                                '{$content['idx']}',
                                '{$post_id}'
                                )
                  ON DUPLICATE KEY
                  UPDATE        `module_content`  = '{$content['text']}',
                                `module_page_idx` = '{$content['idx']}'
                  WHERE
                                `module_id` = '{$content['id']}'
                ");

私をxDにとらえないでください、一見しただけの推測です。

于 2010-12-01T23:47:18.283 に答える