PHPで日時データをDBに挿入する方法

このQ&Aのポイント
  • PHPで取得した日時データをMariaDBのテーブルに挿入する方法を知りたいです。
  • MariaDBのsysdate()関数を使用して日時を入力する方法は分かりますが、PHPで同様のことができないようです。
  • PHPで日時を取得し、それを文字列として変数に代入する方法を教えてください。
回答を見る
  • ベストアンサー

PHPで取得した日時データをDBに挿入する方法

こんにちは。 以下のようにMariaDBのコマンドで「sysdate()」を使用して日時を入力しているのですが、PHPで同様のことができずに困っています。 ご教示頂けませんか。 宜しくお願い致します。 【MariaDB】 MariaDB [tweet01]> insert tweet_tbl(account, contents, input_datetime) values('account01', 'contents01', sysdate()); MariaDB [tweet01]> select * from tweet_tbl; +----+-----------+------------+---------------------+ | id | account | contents | input_datetime | +----+-----------+------------+---------------------+ | 6 | account01 | contents01 | 2016-04-19 00:24:36 | +----+-----------+------------+---------------------+ 【PHP】 $account = $_REQUEST['account']; $contents = $_REQUEST['contents']; $input_datetime = "echo date( "Y-m-d H:i:s" )"; $result = mysqli_query($con, "insert into tweet_tbl(`account`, `contents`, `input_datetime`) values('$account', '$contents', '$input_datetime')"); 以下の行をうまく修正できれば解決しそうな気がしているのですが… $input_datetime = "echo date( "Y-m-d H:i:s" )";

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5071/13248)
回答No.1

$input_datetime = date( "Y-m-d H:i:s" );

cometruejp
質問者

お礼

ありがとうございました。

関連するQ&A

  • PHPでDBへのデータのの挿入がうまくいきません。

    PHPでDBへのデータのの挿入がうまくいきません。 PHP初心者です。 質問を2つほどさせてください。 質問1 レンタルサーバ(ロリポップ)で簡単な値の受け渡しを試そうと思い入力フォームと、PHP側でDB接続(ここまではなんとかできました。)と、POSTで受け取ったデータをinsert intoでDBに挿入したいのですが、データが空っぽの状態でしか挿入できません。 phpmyadminで確認していますが、idはA_Iをチェックしているので1,2,3,4....と挿入されていきますが、その他はデータが空の状態で増えていきます。 NOT NULの設定をしていなく、フィールドが空白なので、NULLの状態で挿入されていると思います。 原因は名でしょうか? test.html <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <div id="content"> <form action="test.php" method="post"> <input type="text" name="member_id" /> <input type="text" name="member_name" /> <input type="text" name="member_text1" /> <input type="text" name="member_text2" /> <input type="submit" value="送信" /> </form> </div> </body> </html> test.php <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> </head> <body> <?php mb_language("uni"); mb_internal_encoding("utf-8"); mb_http_input("auto"); mb_http_output("utf-8") $con = @mysql_connect('ホスト','ユーザ','パス') or die("接続不可"); mysql_query("set names utf8",$con); $db = "LAA0161195-kuro"; $sdb = mysql_select_db($db,$con) or die("接続不可"); print "接続成功<br />"; $sql = "insert into test values('$_post_vars[id]','$_POST[name]','$_POST[text1]','$_POST[text2]')"; $result = mysql_query($sql,$con) or die("SQL失敗"); mysql_close($con); ?> </body> </html> 質問2 また、文字化けの対策は一通りしたつもりですが、接続時のprint(接続成功)が????と文字化けします。 ググって文字化け対策は一通りできているつもりです。 こちらの原因も分かりません。 冬休みの学校の課題なので困っています。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • DBから抽出したデータにを別テーブルに挿入

    どなたか、知見のある方がいらっしゃいましたらご教授願います。 ●やりたい事  Mysqlデータから抽出した表をに対し、数字を画面で入力後に追加  ボタン押下でDBへInsertする ●現状のソース  //サーバーに接続  //クエリーの実行 $res_result = mysql_query($query,$link); echo "<form action='update1.php' method='POST'>"; while($rew = mysql_fetch_array($res_result)){  echo "<table border='1'>";  echo "<tr>";  echo "<td>";  echo $rew['area'];//→※1  echo "</td>";  echo "<td>";  echo "<input type='text' name='name'>";//→※2  echo "</td>";  echo "<tr>";  echo "</table>";  } echo ("<input type='submit' value='追加'>"); 上記の※1と※2の値を「torihikisaki」テーブルに格納したいのです。 'update1.php'に値を渡してInsert文を実行しようとおもったのですが 値の渡し方が良く分かりませんでした。イメージでは※1と※2を 配列で渡し、foreachで一行づつInsertを実行するのかと思っていました。 説明が下手で申し訳ないのですが、ご教授願いますようお願い致します。

    • ベストアンサー
    • PHP
  • file_get_contentsについて

    file_get_contents()で、 <time datetime="<?php echo $mtime = date('Y-m-d\TH:i:s', getlastmod()); ?>"><?php echo $mtime; ?></time> を取得すると、 <time datetime="<?php echo $mtime = date('Y-m-d\TH:i:s', getlastmod()); ?>"><?php echo $mtime; ?></time> (全く同じ文字列)を吐き出しますよね。 そして、それをechoすると、<?php ~ ?>はそのままHTML上に表示されます。 これを、PHPを実行して、 <time datetime="2010-02-19T23:40:10">2010-02-19T23:40:10</time> のように表示させるようにするには、どのようにするのが一般的なのでしょうか。 先人の皆さんの知恵をおかしください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 次の掲示板PHPにアクセスすると

    <?php echo "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">"; echo "本文:<input type=\"text\" size=\"80\" name=\"contents\">"; echo "<input type=\"submit\" value=\"送信\">"; echo "</form>"; $con=pg_connect("dbname=gomidb user=gomiuser host=127.0.0.1"); $contents=$_POST['contents']; if ($contents) { $contents=pg_escape_string(htmlspecialchars($contents)); pg_query($con,"insert into gomibbs(contents) values('$contents')"); } $rs=pg_query($con,"select * from gomibbs"); while($row=pg_fetch_array($rs)) { print $row['no'].":".$row['contents']."<br>"; } pg_close($con); ?> エラーになります ところが pg_query($con,"insert into gomibbs(contents) values('$contents')"); の所を pg_query($con,"insert into gomibbs(no,contents) values(1,'$contents')"); とすれば一度だけOKです どうすれば良いでしょうか?

    • ベストアンサー
    • PHP
  • オラクル10で、perlのプレースフォルダーで日付型のデータを入れようとしていますがどのようにすればよいのでしょうか

    オラクル10で、perlのプレースフォルダーで日付型のデータを入れようとしていますがどのようにすればよいのでしょうか? オラクルのSYSDATE値と名前をインサートしたいのですが 以下の、[]の2つの部分がかわりません。 REGはDATE型です。 [オラクルのSYSDATE値の取得する] my $datetime = [オラクルのSYSDATE値をセットする]; my $sql = qq{insert into TEST (REG, NAMAE) VALUES (?, ?)}; my $sth = $dbh1->prepare( $sql ); $sth->bind_param(1, $datetime ); $sth->bind_param(2, "山田" ); $sth->execute(); よろしくお願いいたします。

  • フォームからmySQL-DBにデータ登録したいです。

    FedoraCore6 + Apache2.2.4 + MySQL5.0.41 + PHP4.4.7 で学習しています。 TABLE aaa( id MEDIUMINT NOT NULL AUTO_INCREMENT, hiduke DATE, xyz INT, comment VARCHAR(30), PRIMARY KEY (id) );  という表を作り、 入力フォーム [TEST.html] <html><head><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"></head> <body><p>データ入力</p> <form action="datatest.php" method="POST"> <p>日付<input type="text" name="hiduke" size="12"></p> <p>データ<input type="text" name="xyz" size="6"></p> <p>コメント<input type="text" name="comment" size="40"></p> <input type="submit" value="登録"> <input type="reset" value="リセット"> </form></body></html> ------------------ 書込スクリプト [datatest.php] <html><body> <php extract($_POST); mysql_connect(localhost,bbbbbb,******); mysql_select_db(cccccc); $sql = "insert into aaa values(0 '$hiduke','$xyz','$comment')"; mysql_query($sql); ?> 下記の内容で登録しました<p> 日付:<? echo $hiduke; ?> <br> データ:<? echo $xyz; ?> <br> コメント:<? echo $comment; ?> <br> <p></body></html> でデータを登録しようとしましたが書き込みができません。何が悪いのでしょうか? 基本的なところが間違っていると思い、いろいろ調べましたが、私の現在の力では原因を見つけることができないでいまず。よろしくご指導下さい。 なお、コマンドラインから、insert into aaa values(0, 20071008,3840,'qqqqq'); なら書込みできます。

    • ベストアンサー
    • MySQL
  • 訂正版 次のPHPにアクセス

    するとエラーになります ただしあらかじめgomidbで以下をしてます create table gomibbs(no serial primary key,contents text); grant all on gomibbs to gomiuser; <?php echo "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">"; echo "本文:<input type=\"text\" size=\"80\" name=\"contents\">"; echo "<input type=\"submit\" value=\"送信\">"; echo "</form>"; $con=pg_connect("dbname=gomidb user=gomiuser host=127.0.0.1"); $contents=$_POST['contents']; if($contents) { $contents=pg_escape_string(htmlspecialchars($contents)); pg_query($con,"insert into gomibbs(contents) values('$contents')"); } $rs=pg_query($con,"select * from gomibbs"); while($row=pg_fetch_array($rs)) { print $row['no'].":".$row['contents']."<br>"; } pg_close($con); ?> エラーになります ところが pg_query($con,"insert into gomibbs(contents) values('$contents')"); の所を pg_query($con,"insert into gomibbs(no,contents) values(1,'$contents')"); とすれば一度だけOKです どうすれば良いでしょうか?

    • ベストアンサー
    • PHP
  • PHPの日時の取得について

    PHPの日時を取得するのに詰まっております。 どなたかお助けお願いいたします! やりたいことは下記です。 今月(例:2013.03)の次の月を表示→12ヶ月分繰り返す。 【めざす完成型】 今月2013.03の1か月後は2013.03 今月2013.03の2か月後は2013.04 今月2013.03の3か月後は2013.05 今月2013.03の4か月後は2013.06 今月2013.03の5か月後は2013.07 今月2013.03の6か月後は2013.08 今月2013.03の7か月後は2013.09 今月2013.03の8か月後は2013.10 今月2013.03の9か月後は2013.11 今月2013.03の10か月後は2013.12 今月2013.03の11か月後は2014.01 今月2013.03の12か月後は2014.02 現在のコード $i = 1; $cumonth = date("Y.m", strtotime(date("Y-m-01"))); while($i <= 12){ $plmonth += strtotime("+1 month", $cumonth); $plmonth_ts = date("Y.m", $plmonth); echo '今月'.$cumonth.'の'.$i.'か月後は'.$plmonth_ts.'<br />'; $i++; } ↓ 表示 ↓ 今月2013.03の1か月後は1970.02 今月2013.03の2か月後は1970.03 今月2013.03の3か月後は1970.04 今月2013.03の4か月後は1970.05 今月2013.03の5か月後は1970.06 今月2013.03の6か月後は1970.07 今月2013.03の7か月後は1970.08 今月2013.03の8か月後は1970.09 今月2013.03の9か月後は1970.10 今月2013.03の10か月後は1970.11 今月2013.03の11か月後は1970.12 今月2013.03の12か月後は1971.01 ※初期の値が1970.01になっています…。 そこでこちらに変えたところ↓ $i = 1; $cumonth = date("Y.m"); $cumonth_ts = strtotime(date("Y-m-01")); while($i <= 20){ $plmonth += strtotime("+1 month", $cumonth_ts); $plmonth_ts = date("Y.m", $plmonth); echo '今月'.$cumonth.'の'.$i.'か月後は'.$plmonth_ts.'<br />'; $i++; } ↓ 表示 ↓ 今月2013.03の1か月後は2013.04 今月2013.03の2か月後は2056.06 今月2013.03の3か月後は2099.09 今月2013.03の4か月後は2142.12 今月2013.03の5か月後は2186.03 今月2013.03の6か月後は2229.06 今月2013.03の7か月後は2272.09 今月2013.03の8か月後は2315.12 今月2013.03の9か月後は2359.03 今月2013.03の10か月後は2402.06 今月2013.03の11か月後は2445.09 今月2013.03の12か月後は2488.12 ※最初(1ヶ月後)は合っているのですが、2ヶ月後以降がおかしくなってしまいました(涙) どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • PHPの登録エラーの原因

    初めまして。今日からPHPの勉強を開始したのですが、以下のエラーメッセージが対処できずに困っています。 どなたか原因をご教授頂けませんか。 宜しくお願い致します。 Fatal error: Call to undefined function mysql_connect() in C:\touroku.php on line 6 【MariaDBの作業】 \mysql -u root -p Enter password: ******** MariaDB [(none)]> create database touroku; MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | touroku | +--------------------+ MariaDB [(none)]> use touroku; Database changed MariaDB [touroku]> create table touroku_tbl( -> id int not null auto_increment, -> name varchar(20) not null, -> email varchar(20) not null, -> primary key(id) -> ); Query OK, 0 rows affected (0.31 sec) MariaDB [touroku]> show tables; +-------------------+ | Tables_in_touroku | +-------------------+ | touroku_tbl | +-------------------+ 1 row in set (0.00 sec) MariaDB [touroku]> insert into touroku_tbl(name, email) values('test', 'test@local'); Query OK, 1 row affected (0.12 sec) MariaDB [touroku]> select * from touroku_tbl; +----+------+------------+ | id | name | email | +----+------+------------+ | 1 | test | test@local | +----+------+------------+ 1 row in set (0.00 sec) MariaDB [touroku]> 【touroku.html】 <html> <body> <form action = "touroku.php" method="post"> 名前:<input type="text" name="nm"> E-mail:<input type="text" name="email"> <input type="submit" name="exec" value="登録"> </form> </body> </html> 【touroku.php】 <html> <body> <?php //データベースに接続 $con = mysql_connect('127.0.0.1', 'root', 'password'); if (!$con) { exit('データベースに接続できませんでした。'); } //データベースを選択 $result = mysql_select_db('touroku', $con); if (!$result) { exit('データベースを選択できませんでした。'); } $result = mysql_query('SET NAMES utf8', $con); if (!$result) { exit('文字コードを指定できませんでした。'); } $nm = $_REQUEST['nm']; $email =$_REQUEST['email']; //フォームで送られてきたデータでINSSERT文を作成 $result = mysql_query("insert into touroku_tbl(name, email) values('$nm', $email)" , $con); if (!$result) { exit('データを登録できませんでした。'); } //SQLを実行 //if (!$res = mysql_query($sql)) { //echo "SQL実行時エラー" ; //exit ; //} //データベースから切断 $con = mysql_close($con); if (!$con) { exit('データベースとの接続を閉じられませんでした。'); } ?> <p>登録が完了しました。<br /><a href="index.html">戻る</a></p> </body> </html>

    • ベストアンサー
    • PHP
  • 別テーブルからselectした値を他のテーブルにinsertしたいのですが、上手くできません

    以下のように行ったのですが、 全ての値が別テーブルにinsertされません。 $sql = "SELECT tbl_A.id, tbl_A.data FROM tbl_A "; $rst = mysql_query( $sql ); while ( $col = mysql_fetch_array( $rst ) ) { $sql = "INSERT INTO tbl_B (          date, id, data ) VALUES ( '" . date( 'Y-m-d' ) . "', '" . mysql_real_escape_string( $col['id'] ) . "', '" . mysql_real_escape_string( $col['data'] ) . "' )"; } このやり方では、テーブル内の1つの値しかinsertされません。 selectされた全ての値をinsertするにはどのようにしたら良いのでしょうか? よろしくお願いします。 DB:mysql5 SP:php5

    • ベストアンサー
    • MySQL

専門家に質問してみよう