2012-11-19 1 views
0

내가 날짜내가 내 데이터베이스에 삽입 할 문자열 날짜를하지만 난 그 일을

$date = '2012-11-18 23:15:12'; 

의 문자열을 구문 오류가 발생하는 것 그리고 난 내 데이터베이스에 삽입합니다.

create table A (
    t_date datetime 
); 

하지만 난

$q = "insert into A (t_date) values ('".$date."')"; 
mysql_query($q) or die("Error: ".mysql_error()); 

말을하지만 난이 작업을 수행 할 때, 그것은 $ 날짜와 쿼리와 관련된 오류를 반환 할 때 작동 것 같지 않습니다.

datetime 대신 Timestamp를 사용해야합니까? 어떻게 제대로 삽입 할 수 있을까요?

오류 :

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2012-11-18 23:15:12')' at line 1[roo 
+2

정확한 오류 메시지는 무엇입니까? –

+2

일반 정보 : 오류 메시지가 표시되고 해당 오류 메시지가 표시된다고 알리는 경우 오류 메시지의 의미를 알려주십시오. 여기에 게시 된 코드는 문제가되지 않습니다. –

+0

테스트 됨, [오류 없음] (http://sqlfiddle.com/#!2/5e282/1). – nickb

답변

0

대신 MySQL을 당신을 위해 그 일을 수행 할 CURDATE를 사용하여 문자열로 현재 날짜를 저장.

$q = "INSERT INTO A (col_name, col_date) VALUE ('DATETIME: Auto CURDATE()', CURDATE())"; 
mysql_query($q) or die("Error: ".mysql_error()); 

MySQL의 DATE TIME 기능 목록을 보려면이 링크를 클릭하십시오. http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_curdate

+0

나는 그 예를 보았다. 그것은 나에게 많은 의미를 만들지 못했다. 그렇지 않다면 나는 질문하지 않았다. – Fallenreaper

+0

그리고 요점은 OP가 * 삽입 할 의사가 없다는 것이다. 추신 : 내 선호는 * SQL *을 사용하여 날짜를 삽입하는 것입니다 (예 :'NOW() '). * 서버 *가 클라이언트에 비해 "지금"을 관리하는 것이 일반적으로 더 좋습니다. 만약 당신이 여러 시간대에 여러 클라이언트를 가지고 있다면. 분명히 여기의 경우는 아니지만 확실히 좋은 습관입니다 ... IMHO ... – paulsm4

+0

아니요, 분명히 아닙니다. 트랜잭션의 일부로 datetime을 갖는 XML 문서가 있습니다. ... 그리고 저는 datetime을 추적하고 싶었습니다. 날짜가 정의로 준비되어있는 datetime에도 불구하고 날짜에 DB에 저장되고 있었기 때문에 과거 – Fallenreaper

관련 문제