2014-01-29 5 views
1

Я пытаюсь преобразовать дату строки в поле даты в MySQL. Это более удобная для пользователя на стороне клиента отправка в виде строки.Преобразование строки в дату перед отправкой MySQL

Вот что я до сих пор на стороне PHP:

$fullname = $_POST['fullname']; 
$dateofdeath = $_POST['dateofdeath']; 
$date = STR_TO_DATE('$dateofdeath','%d,%m,%Y'); 
$sql = "INSERT INTO FRSLNamelist (fullname,dateofdeath) VALUES ('$fullname','$date')"; 

Я получаю - Fatal error: Call to undefined function STR_TO_DATE()

оба поля представлены в виде текста.

У меня был хороший поиск google и stackoverflow, но они в основном связаны с запросом и конвертируют, а не конвертируют, а затем отправляют.

Приветствия всем, кто может помочь.

+3

'STR_TO_DATE' является функцией MySQL, вы используете его в PHP –

+0

Пожалуйста, ** НЕ ** ставить' $ _POST' данные непосредственно в запросе. Это совершенно безрассудно и вызовет у вас серьезные проблемы, потому что вы создали ошибку [SQL injection bug] (http://bobby-tables.com/) из-за того, что не удалось (правильно сбежать) (http: // bobby-tables .com/PHP). – tadman

ответ

2

Попробуйте с помощью следующего кода

Преобразование строки в дату метки времени.

date_default_timezone_set('UTC'); 
$timestamp = strtotime($_POST['dateofdeath']); 
$date=date("Y-m-d", $timestamp); 
$sql = "INSERT INTO FRSLNamelist (fullname,dateofdeath) VALUES ('$fullname','$date')"; 
+0

По-прежнему получают ту же ошибку. Мне не нужно время, поэтому я хочу избежать использования функции «строка-время». – tlai

+0

Вы можете изменить формат, в котором дата хранится, использовать дату ('Y-m-d') и избегать H: i: s, потому что это формат времени. – Jenz

+0

** Это то, что возвращается: ** 'Предупреждение: strtotime() [function.strtotime]: Нельзя полагаться на настройки часового пояса системы. Вы * обязательны для использования параметра date.timezone или функции date_default_timezone_set(). Если вы использовали какой-либо из этих методов, и вы все еще получаете это предупреждение, скорее всего, вы ошиблись с идентификатором часового пояса. Мы выбрали «Австралия/Перт» вместо «WST/8.0/no DST» вместо « « Неустранимая ошибка: имя функции должно быть строкой » – tlai

Смежные вопросы