it-roy-ru.com

PHP - Вставьте дату в MySQL

Я пытаюсь вставить дату в MySQL, но каждый раз, когда это не удается и выходит как 0000-00-00 в phpmyadmin

Мой формат даты похож на 2012-08-06 (гггг-мм-дд), а тип поля даты в базе данных - 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

попробуйте функцию CAST в MySQL:

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

Как отлаживать 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-запросам

Убедитесь, что вы предоставили достаточно закрытия

  • Схема таблицы
  • Запрос
  • Сообщение об ошибке любое
0
Maksim Burnin

Если вы не хотите вставлять даты, отличные от «сегодня», вы можете использовать CURDATE ():

$sql = 'INSERT INTO data_tables (title, date_of_event) VALUES ("%s", CURDATE())';
$sql = sprintf ($sql, $_POST['post_title']);

PS! Пожалуйста, не забудьте очистить входные данные MySQL, особенно через mysql_real_escape_string ()

0
DavidS

попробуйте сначала преобразовать дату.

$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