2012-09-04 3 views
0

잠시 동안 살펴본 후 숨겨진 양식 필드와 PHP MS SQL 쿼리를 사용하여 데이터를 제출할 때 데이터베이스에 업로드 된 날짜를 추가하는 데 어려움을 겪고 있습니다. MySQL NOW() 함수와 비슷한 것. 나는 노력했지만 작동하지 않습니다. 나는 또한 PHP 날짜 기능을 시도했다. 내 업로드는 다음과 같이보고와PHP에서 MS SQL 데이터베이스에 DateUploaded 시간 추가하기

<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."; 
    ?> 

그 나는이 기술을하려고 할 때, 그러나 나는이 오류 얻으려면, 간단한 테스트 블로그 DB :이 이해

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으로 설정된 DB 컬럼에 문자열을 넣으려고하기 때문입니다. DB에서 데이터 유형을 변경하지 않아도되는 방식이 있다면 궁금한 점이 있습니까?

도움을 주시면 감사하겠습니다.

답변

2

단순히 같은 PHP의 날짜를()를 사용합니다.

+0

고마워요 – Bohdi

+0

환영합니다 .. !! –

1

데이터베이스에 쿼리하기 전에 타임 스탬프 값을 생성하고 양식에 숨겨진 필드없이 값을 쓸 수 있습니다. 보안 침해를 막을 수 있으며 더 나은 스타일이 될 것입니다.

내 예 :

$dateUploaded = time(); 

은 자세한 내용은 time() 기능을 참조하십시오. 숨겨진 필드보다 더 나은 솔루션을 조사하는 것이 좋습니다. 제기 데이터베이스가 날짜 유형이 있는지 확인

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

대신 숨겨진 필드를 사용

+0

저는 MySQL이 아닌 MSSQL 데이터베이스를 사용하고 있습니다. 여전히 작동할까요? – Bohdi

+0

예, php로 값을 생성 한 다음 Db에 쓰기 때문에 그렇습니다. –

+0

string을 smalldatetime 오류로 변환하지 못했습니다. – Bohdi