web-dev-qa-db-ja.com

無効な日時形式:1292不正な日時値

フィールド(datetime)でテーブルを更新しようとすると、エラーが発生します

致命的なエラー:メッセージ 'SQLSTATE [2007]のキャッチされていない例外' PDOException ':無効な日時形式:1292不正な日時値:'02 -27-2017 16:37'列の最後の更新

私のPHPコードはPDOを使用しています

$lastupdated = date('m-d-Y H:i:s');
$run = $conn->prepare($sql);
$run->bindParam(':lastupdated', $lastupdated, PDO::PARAM_STR); 

最後に更新されたSQL、データ型はdatetime

既存のデータ

enter image description here

7
user580950

MySQLの日時フィールドを使用するには、"Y-m-d H:i:s"のような日付のフォーマットを設定する必要があります。

つまり:

$lastupdated = date('Y-m-d H:i:s');

From documentation

DATETIMEタイプは、日付と時刻の両方の部分を含む値に使用されます。 MySQLはDATETIME値を取得して'YYYY-MM-DD HH:MM:SS'形式で表示します。サポートされる範囲は「1000-01-01 00:00:00」から「9999-12-31 23:59:59」です。

23
JazZ