Mysqlに日付を挿入しようとしていますが、失敗するたびに0000-00-00
phpmyadminで
私の日付形式は2012-08-06
(yyyy-mm-dd)およびデータベースの日付フィールドタイプはdate
です。
$date = "2012-08-06";
mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
'". $date ."')") or die(mysql_error());
変更してみました-
から/
またはそれらを削除しても機能しません。
mySQLでCAST
関数を試してください:
mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
CAST('". $date ."' AS DATE))") or die(mysql_error());
試してみる
$date = "2012-08-06";
$date=date("Y-m-d",strtotime($date));
「今日」とは異なる日付を挿入する場合を除き、CURDATE()を使用できます。
$sql = 'INSERT INTO data_tables (title, date_of_event) VALUES ("%s", CURDATE())';
$sql = sprintf ($sql, $_POST['post_title']);
PS!特にmysql_real_escape_string()を使用して、MySQL入力をサニタイズすることを忘れないでください
スタックしたときにSQLクエリをデバッグする方法
クエリを出力し、mysqlまたはphpMyAdminで直接実行します
$date = "2012-08-06";
$query= "INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
'". $date ."')";
echo $query;
mysql_query($query) or die(mysql_error());
そうすれば、問題がPHPスクリプトではなく、SQLクエリにあることを確認できます。
SQクエリに関する質問の送信方法
十分な閉鎖を提供したことを確認してください
最初に日付を変換してみてください。
$date = "2012-08-06";
mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('" . $_POST['post_title'] . "',
'" . $date . "')")
or die(mysql_error());