質問: php/mysql insert文について。 php/mysql insert文について。 こんばんは。 php・mysqlでデータベースへデータの書き込みを試行錯誤しております。 そこで一つどうしても解決出来ない問題(謎)があるので質問させて頂きます。 簡易的な質問内容としては 全てのカラムに対する値の挿入は可能なのに カラムを指定して値を挿入しようとしたらエラーが出ます。 データベースの設定はテーブル名【testtable】 フィールド種別null属性/その他 aaaint(6)nounsigned zerofill / auto_increment bbbint(4)yes cccint(4)yes dddint(4)yes phpでのsql実行文をしてはの記述としては(値は全て可変で数値を代入します。) insert into testtable values (last_insert_id(),50,600,50) とした場合は問題無くテーブルに書き込みされますが カラムを指定して insert into testtable (aaa,bbb,ccc,ddd) values (last_insert_id(),50,600,50) とした場合、書き込みが行われません。 insert into testtable ('aaa','bbb','ccc','ddd') values (last_insert_id(),50,600,50) insert into testtable (aaa,'bbb','ccc','ddd') values (last_insert_id(),50,600,50) insert into testtable ('aaa','bbb','ccc','ddd') values (last_insert_id(),'50','600','50') 等、色々試してみましたが不可能でした。 カラムaaaはauto_incrementにりますので毎回書き込みされますが bbb、ccc、dddは書き込みが不要の場合もあるので カラム指定の書き込みは必須となるのですが・・・行き詰ってしまいました・・・。 ご教授頂ければ幸いです。 どうぞ、宜しくお願い致します。
回答: いまいち何をしたいのかわかりません。 aaaがautoincrementなら、わざわざlast_insert_id()を指定しなくてよいのでは? insert ignore into `testtable`(`bbb`,`ccc`,`ddd`) values(50,600,50) とすればいいような気がしますが? ※ignoreはエラー回避のためにつけています。基本的にはなくても動きます ※テーブル名、カラム名はバッククォートで囲むのがmysqlのルールです