[前][次][番号順一覧][スレッド一覧]

mysql:13048

From: 高橋政利 <高橋政利 <takahashi@xxxxxxxxxx>>
Date: Fri, 02 Jun 2006 10:49:04 +0900
Subject: [mysql 13048] Re: insertに関して

高橋と申します。
私自身も、初心者の域を脱し切れていないのですが・・・。

ERROR 1136: Column count doesn't match value count at row 1
はフィールドの数と値の数が合ってないというエラーだと思います。
INSERT 文を良く見て下さい。

>$sql = "insert into member values(0, '$hiduke', '$id', '$shamei', 
>'$gyoutai', '$gyoushu'. '$jigyou', '$setsuritsu', '$shihon', '$uriage', 
>'$shainsuu', '$nam', '$yu1', '$yu2', '$todoufuken', '$shikugun', '$juusho', 
>'$url', '$mail1', '$tel', '$fax', '$renraku_mail', '$renraku_tel', 
>'$renraku_fax')";

'$gyoushu' の後がカンマでなくドットになっています。
この手のミスはよくあることです。

konさんのアドバイスの意味は、フィールド数が多くなるとその度に、テーブル
の並びを確認しながら、SQL文を作成するのは手間なので、フィールド名を明示
させてあげた方が、楽ちんだよ。という意味ではないのでしょうか?
また、テーブルの一部分だけを指定してインサートないしアップデートさせたい
場合には、有効な方法です。スクリプト側の都合(テーブルのフィールド順に処
理すると、ソース管理が煩雑になる)で、必ずしもフィールド順にSQL文を書い
た方が良いとも限りませんし、あとでフィールドを増やす場合、順番の変更を行
いやすくなりますよ。
野口様のSQL文の場合は、

insert into table名 ($field1名, $field2名, $field3名, ・・・・)
             VALUES ($field1値, $field2値, $field3値, ・・・・);

てな具合でどうでしょうか?

kon様のようなSQL文の書き方は、私自身も知りませんでした。
UPDATE文の場合は、そのように書いていたのですが・・・・。
参考になりました。ありがとうございました。



[前][次][番号順一覧][スレッド一覧]

     13043 2006-06-02 00:02 ["chappuru21 chappuru] insertに関して                          
     13044 2006-06-02 00:47 ┣[<milk_coffee_2004jp@]                                       
     13045 2006-06-02 09:44 ┃┗["chappuru21 chappuru]                                     
     13046 2006-06-02 10:12 ┃ ┣[Seiichi YANAI <yanai]                                   
->   13048 2006-06-02 10:49 ┃ ┗[高橋政利 <takahashi@]                                   
     13049 2006-06-02 12:07 ┃  ┗["chappuru21 chappuru]                                 
     13047 2006-06-02 10:43 ┗["Takashi Yamashita" ]