Добавление 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() для более подробной информации. Я предлагаю вам исследовать лучшее решение, чем скрытое поле.