Я пытаюсь вставить даты, поля времени, используя php-скрипт, но я получаю синтаксическую ошибку. Может кто-нибудь, пожалуйста, скажите мне, где я делаю ошибку. Спасибо, ребята
INSERT INTO calendar (event, from, to, day) VALUES ('". $ _ REQUEST [' event ']."', '". $ _ REQUEST [' from_time ']."', '". $ _ REQUEST [' to_time '].' ',' ". $ _ REQUEST ['date_event']." ')
Никогда не вставляйте строковые данные в ваш SQL-запрос без дезинфекции данных или вы получаете инъекции sql (преднамеренные или непреднамеренные инъекции), см. http://php.net/mysql_real_escape_string
Если у вас нет установленного отладчика, пусть php распечатает инструкцию sql, чтобы вы могли ее проверить.
Отформатируйте и отступы ваши запросы sql. Их гораздо легче читать и отлаживать таким образом.
Всегда проверяйте возвращаемое значение mysql_query (). Если это ЛОЖЬ, запрос завершился неудачно, и mysql_errno () или mysql_error () могут рассказать вам больше о причине ошибки.
Если вы хотите использовать идентификатор, который также является зарезервированным словом для MySQL, вы почти всегда должны помещать его в backticks (`) или double_quotes (в режиме ansi).
Формат литератур даты / времени, понимаемый MySQL, объясняется по адресу http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html.
Использование _REQUEST для операций INSERT может быть сомнительным … но я оставляю это другим, чтобы отвечать 😉
<?php $mysql = mysql_connect...
$ query = "INSERT INTO` calendar` (`event`,` from`, `to`,` day`) VALUES ('". mysql_real_escape_string ($ _ REQUEST [' event '], $ mysql)."', '" mysql_real_escape_string ($ _ REQUEST ['from_time'], $ mysql). "','". mysql_real_escape_string ($ _ REQUEST ['to_time'], $ mysql). "','". mysql_real_escape_string ($ _ REQUEST ['date_event'] , $ mysql]). "')"; echo '<pre> $ query =', htmlspecialchars ($ query), '</ pre>'; $ result = mysql_query ($ query, $ mysql); if (! $ result) {echo 'error:', mysql_error ($ mysql); } И btw: вместо этого используйте подготовленные заявления .
Чтобы вставлять в поля mySQL datetime, строка должна быть в определенном формате для mySQL, чтобы понять это. Проблема в том, что php имеет свои собственные мысли и идеи о том, как представлены даты. Когда вы занимаетесь датами между ними, вы должны переводить.
Если в php вы имеете дело с объектом времени, вы можете сделать это, чтобы получить строку mySQL:
$mysqlDateString = date('Ymd H:i:s', $phpdate);
или если вы имеете дело со строковой датой, вы можете сделать это:
$mysqlDateString = date('Ymd H:i:s', $strtotime("08/09/2009"));
Если вы получаете строку datetime из mySQL, вы можете сделать это, чтобы справиться с ней в PHP:
$phpTime = strtotime($mysqlDateString);
Просто наткнулся на эту проблему сам, так что, надеюсь, это сработает и для вас.