MYSQLに更新日を自動的に挿入する方法

このQ&Aのポイント
  • PHPとMYSQLで会員制のページを作っていますが、更新した時に自動的に日付を入れる方法が分かりません。
  • 質問者は、MYSQLのテーブルに「regdate」という列を設定し、PHPのコードでその列に日付を挿入しようとしていますが、うまくいっていません。
  • 質問者は、正しいコードの書き方が分からないため、助けを求めています。
回答を見る
  • ベストアンサー

MYSQLに更新日を自動的に挿入

PHPとMYSQLで会員制のページを作っています。 更新した時、自動的に日付を入れようしていますがうまく出来ません、 何方か教えていただけませんか。。 よろしくお願いいたします。 下記のようにしています。 MYSQL table mem id int(10) name vacher(100) pass varcher(8) regdate date PHP $sql = "insert into mem (id , name , pass ,regdate) values (\"id\", \"$name\", \"$pass\", date())";

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 SQLの場合、文字列は''で囲むのが一般的です。 また''にすれば\はいりません。 また、日付ですがnow()ではないでしょうか。 以上を踏まえてSQLを作ると $sql = "insert into mem (id , name , pass ,regdate) values ('id', '$name', '$pass', now())"; になると思います。

kiyomidesuyo
質問者

お礼

解決いたしました。 一から勉強するべきなのでしょうが、 急な事なので、アタフタしていました。 安心して寝る事が出来ます(^^♪ ありがとうございました。

関連するQ&A

  • PHPでレコード追加(MYSQL)が出来ません

    以下のようにするとうまくいってたのが、 ひとつフィールドを増やすとうまくいきません。 単純なミスだろうと思い、数時間格闘していますが見つかりません。 よろしくご教授お願いいたします。 MYSQL table mem id vacher(10) name vacher(100) pass varcher(8) regdate date PHP $sql = "insert into mem (id , name , pass ,regdate) values ('$id', '$name', '$pass', now())"; ↓↓↓↓↓↓ MYSQL table mem id vacher(10) name vacher(100) pass varcher(8) regdate date kikan varcher(100) PHP $sql = "insert into mem (id , name , pass ,regdate ,kikan) values ('$id', '$name', '$pass', now() ,'$kikan')";

    • ベストアンサー
    • MySQL
  • MySQLから取り出したものを3つに分ける

    MySQLに以下のようなSQLを打ちました。 create table table_list( id int, task varchar(255) ); insert into table_list values(1,'ほげほげ1-1'); insert into table_list values(1,'ほげほげ1-2'); insert into table_list values(2,'ほげほげ2-1); insert into table_list values(2,'ほげほげ2-2'); insert into table_list values(3,'ほげほげ3-1'); そして、空のdiv要素が3つあります。 このデータベースからidの数値別に、div要素へtaskの文字列を入れたいのですが、どうすればいいのでしょうか? SQLで「select * from table_list」をやってからtaskを取り出すのか、3回SQLで「select task from table_list where id=1」のようにするのがよろしいんでしょうか?

    • ベストアンサー
    • PHP
  • データベースが更新されない

    MySQLを使ってフィールドにid、name、age、genderを持つデータベースを作りました。idは、主キーでauto_incrementです。中身は空です。 ここにPHPで <?php $conn = mysql_connect("localhost", "user", "pass") or die("MySQLに接続できません"); mysql_query("SET NAMES 'sjis'", $conn); mysql_select_db("sample4", $conn); mysql_query("INSERT INTO sample4 (id,name,age,gender) VALUES ('田中',18,1)", $conn); mysql_query("INSERT INTO sample4 (id,name,age,gender) VALUES ('鈴木',24,1)", $conn); mysql_query("INSERT INTO sample4 (id,name,age,gender) VALUES ('加藤',20,0)", $conn); mysql_close($conn); echo "初期化終了<BR>"; ?> をブラウザ上で実行したんですが、MySQLには接続でき、エラーもなく初期化完了とは出るんですが、MySQLで中身を確認してみると、 mysql> select * from samplet4; Empty set (0.00 sec) と出て空の状態です。何故でしょうか・・・。 よろしくお願いします。

  • MySQLで漢字を登録したい。

    MySQLで漢字を登録したい。 insert into personal(id, old, name) values(1, 18, 'Satou'); とやればうまくいくのですが、 insert into personal(id, old, name) values(1, 18, '佐藤'); とやっても????となってしまいます。 どのようにすればいいでしょうか。

    • ベストアンサー
    • MySQL
  • mySQLでINSERT Errorとなります。

    初心者です。よろしくお願いいたします。 データを入れたいのですが、エラーとなってしまいます。 以下でデータベースとテーブルを作成し、 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } $sql = 'CREATE DATABASE tori'; if (mysql_query($sql, $db)) { echo "データベースtori の作成に成功しました\n"; } else { echo 'データベースtoriの作成に失敗しました: ' . mysql_error() . "\n";} mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $query ="create table {$tbl_name} ( id char(8) primary key, date TEXT, sex TEXT, age TEXT )TYPE=MyISAM"; mysql_query($query); $query ="INSERT INTO `houzingpark`.`hatogaya` ( id , date , sex , iro ) VALUES ( '2', 'uu', 'ii', 'po' )"; mysql_close($db); ?> 以下で入れ込みたいのですが、出来ないのです。 <?php $db_name="tori"; $tbl_name = "hato"; $db = mysql_connect('localhost', 'root', ''); if (!$db) { die('接続できません: ' . mysql_error()); } mysql_select_db($db_name,$db) or die("データベースへの接続エラー"); $sql="INSERT INTO hatogaya ( id , date , sex , iro ) VALUES ( 3, 2005-12-3, mesu, cya )"; mysql_query($sql); if(!$result){print 'INSERT Error!';} echo $sql; mysql_close($db); ?> でINSERTしようとするのですが、INSERT Error!と表示されてしまいます。 Adminで見るとデータベースとテーブルは出来ているのですが、どうしてもINSERTできないのです。 もう何時間も悪戦苦闘しております。 どなたかご指導よろしくお願いいたします。

  • MySQL初心者

    -mysql CREATE DATABASE testdb; use testdb; CREATE TABLE car_table(id int(10),name varchar(50)); INSERT INTO car_table VALUES (2,'乗用車'); INSERT INTO car_table VALUES (3,'オープンカー'); INSERT INTO car_table VALUES (4,'トラック'); SELECT * FROM car_table; これで間違ってるとは思わないんですが、なぜか ERROR 1049(42000): Unknown database 'testdb・・ とでます。なぜなんでしょうか?全然わかりません。 何かの設定ミスかなにかでしょうか?

    • ベストアンサー
    • MySQL
  • 最初に挿入された行だけ取得したい

    このジャンルでお願いします。 次のようなテーブルで CREATE TABLE IF NOT EXISTS user ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user (name) VALUES ('user1'); INSERT INTO user (name) VALUES ('user2'); INSERT INTO user (name) VALUES ('user3'); CREATE TABLE IF NOT EXISTS item ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO item (name) VALUES ('item1'); INSERT INTO item (name) VALUES ('item2'); INSERT INTO item (name) VALUES ('item3'); CREATE TABLE IF NOT EXISTS user_item ( id int(11) NOT NULL AUTO_INCREMENT, user_id INT, item_id INT, PRIMARY KEY(id), FOREIGN KEY (item_id) REFERENCES user(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (user_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO user_item (user_id, item_id) VALUES (1, 1); INSERT INTO user_item (user_id, item_id) VALUES (2, 1); INSERT INTO user_item (user_id, item_id) VALUES (3, 2); INSERT INTO user_item (user_id, item_id) VALUES (1, 2); INSERT INTO user_item (user_id, item_id) VALUES (1, 3); INSERT INTO user_item (user_id, item_id) VALUES (3, 3); user_itemテーブルでのselectで、 user_idが1で一番最初に挿入された行だけ を取得したいのですが、どのようなSQL文にすれば良いのでしょうか? この例なら INSERT INTO user_item (user_id, item_id) VALUES (1, 1);←取得 INSERT INTO user_item (user_id, item_id) VALUES (2, 1); INSERT INTO user_item (user_id, item_id) VALUES (3, 2); INSERT INTO user_item (user_id, item_id) VALUES (1, 2);←user_id=3が最初に挿入されているので取得しない INSERT INTO user_item (user_id, item_id) VALUES (1, 3);←取得 INSERT INTO user_item (user_id, item_id) VALUES (3, 3);

    • ベストアンサー
    • MySQL
  • データベースに変数の値を挿入

     HTMLのフォームから、getParameterで取得した値(id,name,club)をデータベースに挿入したいのですが、 String sql="insert into test_table values(id,name,club)";  と記述してもその文字列がそのままテーブルに反映されてしまいます。  もちろん、 String sql="insert into test_table values('12','●田○郎','野球部')"; とあらかじめ記述しておけばこのデータがテーブルに挿入されるのですが・・・。  PHPでは確かvalues('{$id}','{$name}','{$club}')のように記述すればできたので戸惑っています。  JAVAでSQL文に変数を含める場合、どのように記述すればいいのでしょうか?

    • ベストアンサー
    • Java
  • PHP/MySQL INSERT文について。

    PHP/MySQL INSERT文について。 こんばんは。 PHP・MySQLでデータベースへデータの書き込みを試行錯誤しております。 そこで一つどうしても解決出来ない問題(謎)があるので質問させて頂きます。 簡易的な質問内容としては 全てのカラムに対する値の挿入は可能なのに カラムを指定して値を挿入しようとしたらエラーが出ます。 データベースの設定はテーブル名【TESTtable】 フィールド 種別 NULL 属性/その他 AAA int(6) No UNSIGNED ZEROFILL / auto_increment BBB int(4) Yes CCC int(4) Yes DDD int(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は書き込みが不要の場合もあるので カラム指定の書き込みは必須となるのですが・・・行き詰ってしまいました・・・。 ご教授頂ければ幸いです。 どうぞ、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • 指定された趣味を持つメンバーがいるグループを抽出するSQL

    グループテーブル、メンバーテーブル、趣味テーブルの3つのテーブルがあります。 あるメンバーはあるグループに属しており、趣味を1つ持っています。 以下がそのSQLです。 CREATE TABLE groups ( g_id int primary key ); CREATE TABLE members ( m_id int primary key , g_id int , h_id int ); CREATE TABLE hobbies ( h_id int primary key, h_name text ); INSERT INTO groups VALUES ( 1 ); INSERT INTO groups VALUES ( 2 ); INSERT INTO groups VALUES ( 3 ); INSERT INTO members VALUES ( 1, 1, 1); INSERT INTO members VALUES ( 2, 1, 3); INSERT INTO members VALUES ( 3, 1, 4); INSERT INTO members VALUES ( 4, 1, 4); INSERT INTO members VALUES ( 5, 2, 1); INSERT INTO members VALUES ( 6, 2, 2); INSERT INTO members VALUES ( 7, 2, 3); INSERT INTO members VALUES ( 8, 3, 2); INSERT INTO members VALUES ( 9, 3, 3); INSERT INTO members VALUES ( 10, 3, 4); INSERT INTO hobbies VALUES ( 1, 'sports' ); INSERT INTO hobbies VALUES ( 2, 'music' ); INSERT INTO hobbies VALUES ( 3, 'book' ); INSERT INTO hobbies VALUES ( 4, 'drive' ); 指定された趣味を持つメンバーがいるグループを抽出するにはどうすればいいでしょうか? 例えば、「読書が趣味なメンバーとドライブが趣味なメンバーがいるグループは?」「グループ1とグループ3」のような感じです。 一応自分で考えてみたのが、以下ですが、これだと趣味の指定が増減すると大きくSQLが変わってしまいます。 もっといいやり方はないでしょうか? 私はPostgreSQL8を使ってますが、汎用的なSQLであれば、そっちの方がいいです。 SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'drive' INTERSECT SELECT distinct m.g_id FROM members m join hobbies h ON m.h_id = h.h_id where h.h_name = 'book';

専門家に質問してみよう