
phpからMySQLへdatetime型のデータを送信するようにこのようにコードを書きました
<?php $dsn = 'mysql:dbname=post;host=127.0.0.1;charset=utf8'; $user = 'xxx'; $password= 'xxx'; try{ $dbh = new PDO( $dsn, $user, $password ); $a = $_POST["a"]; $b = $_POST["b"]; $created_at = new DateTime(); $created_at->format("Y-m-d H:i:s"); $sql = "INSERT INTO test (a, b, created_at) VALUES (:a, :b, :created_at)"; $stmt = $dbh->prepare($sql); $params = array(":a" => "$a", ":b" => "$b", "created_at"=>"$created_at"); $stmt->execute($params);?> <?php }catch (PDOException $e) { exit("データベースに接続できませんでした。" . $e->getMessage()); }?>
すると下記のエラーが出てしまいました。
Recoverable fatal error: Object of class DateTime could not be converted to string in C:\xampp\htdocs\phptest\z.php on line 17
DateTime型のデータである$created_atはstring型には変更できない という内容だとは思うのですが、どこでstring型に変わっているのか、どうすればMySQLに送信・保存できるのかが分かりません
よろしくお願いします。


回答4件
あなたの回答
tips
プレビュー