0

mySQL日付を文字列で置き換えてデータベースに保存しようとすると、エラーが発生します。その理由は、DATEフィールドの形式です。PHP以下にコードとmySQLエラーメッセージを追加しました。

$nowDate = str_replace('/', '-', $_POST['datenow']); 

echo $nowDate;

出力> 08-15-2012、このレコードをデータベースに挿入していますが、MySQLデータベースに形式yyyy-mm-dd2012-08-15)が必要です。そうでない場合、エラーが発生します

Unable1 to run query:Incorrect date value: '08-15-2012' for column 'now_date' at row 1
4

3 に答える 3

6

エラーが指定するように、日付の形式はである必要がありますyyyy-mm-dd

date()とを使用して挿入する前にフォーマットできますstrtotime()

$nowDate = date('Y-m-d', strtotime($_POST['datenow']));
于 2012-08-13T18:37:37.027 に答える
3

これを試して

$nowDate = date('Y-m-d',strtotime($_POST['datenow']));

または、現在の日付を追加しようとしているだけの場合は、MySQLにこのように追加してもらいます。これにより、入力データをサニタイズする必要がなくなります。

INSERT INTO table SET date_field = NOW();
于 2012-08-13T18:40:55.947 に答える
0

だから問題は何ですか?MySQLには特定の形式が必要であることはすでにご存知ですが、サポートされていない形式を使用したいとおっしゃっています。'bad'形式の使用を主張する場合はSTR_TO_DATE()、挿入クエリ内での使用を調査するか、PHP文字列を有効なMySQL日付形式に変換してください。

于 2012-08-13T18:38:32.783 に答える