Кажется, я не могу получить дату, чтобы вставить ее из моей формы в мою базу данных. Пожалуйста помоги!
вот моя форма
echo ' <h1>Enter New Report</h1> <form action="submitreport.php" method="post" enctype="multipart/form-data"> Date: <input type="text" name="Date" value='.$myDate.' /><br /> Report:<br><TEXTAREA NAME=Report ROWS=4 COLS=40></TEXTAREA><br /> <input type="submit" name="submit" value="Submit" /> </form> '; ?>
Вот что я написал, чтобы отправить его в базу данных
$insertdate = trim($_POST['Date']); $insertdate = mysql_real_escape_string($insertdate); $insertdate = date('m/d/Y', $insertdate); echo $insertdate; mysql_query("INSERT INTO `Reports`(`Date`, `Report`) VALUES ('$insertdate','$_POST[Report]')") or die("load1 -" . mysql_error()); mysql_close(); echo "Thank You!" . " -" . "<a href='index.php' style='text-decoration:none;color:#ff0099;'> Return Home</a>"; ?>
Я только догадываюсь, но поле Date
в базе данных имеет тип date
или datetime
. Их формат составляет YYYY-mm-dd
. Попробуйте изменить свой код на:
$insertdate = date('Ym-d', strtotime($_POST['Date']));
Кроме того, перед форматированием вы не конвертируете дату в метку времени. Я также добавил strtotime()
и данные.
В качестве второго параметра для date
PHP требуется метка времени. Если $insertdate
не один, это не сработает. Вы можете получить strtotime()
метку из строки, используя strtotime()
PHP.
Кроме того, значение в вашей инструкции sql должно быть отформатировано в соответствии с типом, используемым в вашей базе данных mysql, например date
, datetime
или timestamp
Вы можете использовать функцию NOW () MySQL, чтобы вставить текущую дату / время в базу данных. Для этого вам просто нужно использовать типы полей Date, DateTime или Timestamp.
Я получил его $ insertdate = trim ($ _ POST ['Date']);
$insertdate = mysql_real_escape_string($insertdate); $insertdate = strtotime($insertdate); $insertdate = date('Ym-d', $insertdate);
Strtotime исправил это, но мне пришлось изменить формат даты на Ymd
Спасибо вам за помощь