web-dev-qa-db-ja.com

PHP-日付をmysqlに挿入

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()); 

変更してみました-から/またはそれらを削除しても機能しません。

11
xperator

mySQLでCAST関数を試してください:

mysql_query("INSERT INTO data_table (title, date_of_event)
VALUES('". $_POST['post_title'] ."',
CAST('". $date ."' AS DATE))") or die(mysql_error()); 
12
Omesh

試してみる

$date = "2012-08-06";
$date=date("Y-m-d",strtotime($date));
10
WatsMyName

「今日」とは異なる日付を挿入する場合を除き、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入力をサニタイズすることを忘れないでください

1
DavidS

スタックしたときに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クエリに関する質問の送信方法

十分な閉鎖を提供したことを確認してください

  • テーブルスキーマ
  • 問い合わせ
  • エラーメッセージはany
0
Maksim Burnin

最初に日付を変換してみてください。

$date = "2012-08-06";

mysql_query("INSERT INTO data_table (title, date_of_event)
               VALUES('" . $_POST['post_title'] . "',
                      '" . $date . "')") 
           or die(mysql_error());
0
John Woo