こんばんは。

PDOを使い、mysqlのdatatimeに、P現在時刻を登録するにはどうしたら良いのでしょうか??

// データベース接続完了
$date = new DateTime();
$date = $date->format('Y-m-d H:i:s');
$sql = 'INSERT INTO members(name,password,created) VALUES(:name, :password, :created)';
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $_SESSION['name'], PDO::PARAM_STR);
$stmt->bindParam(':password', $_SESSION['password'], PDO::PARAM_STR);
$stmt->bindValue(':created', $date, PDO::PARAM_STR);←ここが分かりません!
$stmt->execute();

これでできるかな、と思ったのですが、できませんでした。
bindParamでも試しましたが結果は失敗……。
他の値は登録できており、createdだけnull値になってしまいます。
宜しくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/09/15 00:30:03

回答0件)

回答はまだありません

  • id:a-kuma3
    ぱっと見た目、よさそうに思いますけれど...

    ・実際のコードのコピペで質問してますか?
      それとも、一部変えてたりとか

    ・「できません」の具体的な内容は?
      書き込みでエラーが出る? それとも、期待した値ではなく別の値(何?)が入ってる?
  • id:munzoh
    コメントありがとうございます!
    他の値はインサートできているのに、createdだけnullの値が入っています。(null値にチェックが入っていました)
    エラーは出ません。
    実際のコードとはちょっとはしょってしまっていました、すいません。本物は、
    $date = new DateTime();
    $date = $date->format('Y-m-d H:i:s');
    require_once 'dbmanage.php';
    $pdo = getDb();
    $sql = 'INSERT INTO members(name,password,picture,type,created) VALUES(:name, :password, :picture, :type, :created)';
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':name', $_SESSION['name'], PDO::PARAM_STR);
    $stmt->bindParam(':password', $_SESSION['password'], PDO::PARAM_STR);
    $stmt->bindParam(':picture', $_SESSION['img'], PDO::PARAM_STR);
    $stmt->bindParam(':type', $_SESSION['type'], PDO::PARAM_STR);
    $stmt->bindValue(':created', $date, PDO::PARAM_STR);
    $stmt->execute();

    データベース側の問題でしょうか……
  • id:a-kuma3
    そうですか、null が入ってるんですね...
  • id:munzoh
    何度も申し訳ありません。
    打ち直したら、きちんと挿入できました……
    お手を煩わせてしまい、本当にすいません。
    何もかもが初めてで、これでできるかな、と思ったものがうまくいかないと「考え違いなのじゃないか」と質問してしまいました。
    もっと根本的にきちんとコードを見直すよう気を付けます。
    本当にありがとうございました。
  • id:a-kuma3
    よかった、よかった :-)

    おまけをふたつ。

    http://stackoverflow.com/questions/1575601/datetime-now-php-mysql-pdo-variant?answertab=votes#tab-top
    PHP でやるんじゃなくて、SQL 関数の NOW() を使う方法。

    http://php.net/manual/ja/pdostatement.bindparam.php
    bindParam と bindValue の違い。

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

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

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

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