PHPは5.2、MYSQL5.0での質問です。

練習のためにECサイトを作成しています。

・商品登録時に「登録日時カラム」に現在日時を取得して入れたい。

・データ修正時に「更新日カラム」に、他のカラムに手を加えると、
自動的に更新時間が上書きされるようにしたいと思っています。

テーブルはとりあえず下記の様にしてみました。

カラム名、型
regst_time datetime
edit_time timestamp

PHPではどのように書いたらいいでしょうか?

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:
  • 終了:2007/11/15 18:25:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:chuken_kenkou No.1

回答回数722ベストアンサー獲得回数54

ポイント60pt

MySQLのTIMESTAMP型は、元々、自動的に格納、更新の日時を設定する性質を持っています。

<表定義例>

create table tbl1
(id            int  primary key,
 regst_time    datetime,
 edit_time     timestamp,
 data          varchar(10))

<格納>

insert into tbl1 values(1,current_timestamp,null,'a')

current_timestampを値として指定することで、現在の日時を格納できます。

<更新>

update tbl1
 set data='b'
 where id=1

timestamp型の列が1個しかなければ、その列に対して何もしないで、自動的に日時が設定されます。

MySQL AB :: MySQL 5.1 リファレンスマニュアル :: 10.3.1 DATETIME、DATE、そして TIMESTAMP タイプ

id:yossui_coll

解決できました!ありがとうございます!

とかいろいろ入れて、

エラー地獄から抜け出せなかったので、助かりました!

※後々の自分&参考にしている他の方のため

1292: Incorrect datetime value: 'current_timestamp' for column 'regst_time' at row 1

となってしまった場合は、'シングルクォーテーションがいらない。

2007/11/08 22:57:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません