Почему запись даты в PHPMyAdmin является 0000-00-00? - PullRequest
1 голос
/ 29 марта 2011
  <?php
$con = mysql_connect("localhost","","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("", $con);

$sql="INSERT INTO PatientData (username, Date, GlucoseReading, Carbohydrates, InsulinUsed, InsulinType,WhichMeal)
VALUES 

('$_Post[username]', '$_POST[Date]', '$_POST[GlucoseReading]', '$_POST[Carbohydrates]', '$_POST[InsulinUsed]','$_POST[InsulinType]', '$_POST[WhichMeal]' )";


if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
mysql_close($con);
?> 

Ответы [ 4 ]

2 голосов
/ 29 марта 2011

$_POST["DATE"] имеет неправильный формат или пуст.

2 голосов
/ 29 марта 2011

В дополнение к тому, что было сказано в предыдущих постерах, убедитесь, что ваша дата действительна.Например, 2011-02-31 является недопустимой датой, которую MySQL превратит в 0000-00-00.

Недопустимые значения DATETIME, DATE или TIMESTAMP преобразуются в «нулевое» значениесоответствующий тип («0000-00-00 00:00:00» или «0000-00-00»).( MySQL документация )

1 голос
/ 29 марта 2011

Видя заголовок вашего поста, я думаю, у вас есть столбец в качестве даты.

В mysql поле даты имеет формат гггг-мм-дд.

Если вы попытаетесь ввести что-либо еще, не похожее на указанную выше дату, оно вставит 0000-00-00.

Чтобы исправить это, вместо ввода даты непосредственно в формат базы данных, как показано ниже

date ('Y-m-d', strtotime ($ _ POST [Date]))

также еще один совет, посмотрев на ваш текущий код, кажется, что этот код подвержен SQL-инъекции, очистите данные перед вставкой в ​​базу данных.

1 голос
/ 29 марта 2011

Возможные причины

  1. Может быть, ваш $_POST[Date] пуст
  2. Формат даты не yyyy-mm-dd MySQL принимает дату в формате yyyy-mm-dd

проверьте это и убедитесь, что вы должны защитить свои запросы от SQL-инъекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...