Добавление DateUploaded Time в базу данных MS SQL из PHP

После некоторого изучения я пытаюсь использовать скрытое поле формы и PHP-запрос MS SQL, чтобы добавить дату, загруженную в базу данных при отправке данных. Нечто подобное функции MySQL NOW(). Который я пробовал и не работает. Я также тогда попробовал функцию даты PHP.

<input type="hidden" name="DateUploaded" value="<?php date("d","m","y") ?>">

Моя загрузка выглядит так:

<?php 
 $Title=$_POST['Title'];
 $Synopsis=$_POST['Synopsis'];
  $Article=$_POST['Article'];
  $DateUploaded=$_POST['DateUploaded'];
  $Deleted=$_POST['Deleted'];
  mssql_connect("*************", "*********", "*********") or die; 
  mssql_select_db("DBName") or die; 
  mssql_query("INSERT INTO DBTable (Title, Synopsis, Article, DateUploaded,   Deleted) VALUES ('$Title','$Synopsis','$Article','$DateUploaded','$Deleted')"); 
  Print "Your information has been successfully added to the database."; 
   ?>

Это просто тестовая БД блога, однако, когда я пробую эту технику, я получаю эту ошибку:

Warning: mssql_query() [function.mssql-query]: message: Conversion failed when converting character string to smalldatetime data type. (severity 16) in (File Path) on line 9

Я понимаю, что это потому, что я пытаюсь поместить строку в столбец БД, установленный как smalldatetime. Мне просто интересно, есть ли способ обойти это, что не требует от меня изменения типа данных в БД?

Любая помощь будет оценена.

2 ответа

Решение

Вместо использования скрытого поля просто используйте date() из php:

$DateUploaded=date("Y-m-d H:i:s");

Убедитесь, что ваша база данных имеет тип даты.

Вы можете просто сгенерировать значение временной метки перед запросом в базу данных и записать значение без каких-либо скрытых полей в форме. Вы сэкономите на нарушениях безопасности, и это будет лучший стиль.

Мой пример:

$dateUploaded = time();

Смотрите функцию time() для более подробной информации. Я предлагаю вам исследовать лучшее решение, чем скрытое поле.

Другие вопросы по тегам