2012-12-14 5 views
0

mysql 테이블의 열에 datetime을 삽입하려고합니다.MySQL에 php datetime 삽입

<?php 

//Some code 

date_default_timezone_set('Europe/London'); 

//Other variables defined also 

$date_time = new DateTime(); 


$queryreg = mysql_query (" 

    INSERT INTO users VALUES ('','$username','$password','$email','$website','$image','$date_time') 

    "); 



?> 

브라우저 상태 그러나 "잡아낼 치명적인 오류 : 클래스 날짜 시간의 객체는 C에서 문자열로 변환 할 수 없습니다 : 라인 181에 \ XAMPP \ htdocs를 \ 디자인 \의 register.php". 왜 이런 짓을 한거야? 미리 감사드립니다.

+0

[mysql 쿼리에서 PHP DateTime 개체 사용] 가능한 복제본 (http://stackoverflow.com/questions/10489386/using-php-datetime-object-in-mysql-query) –

답변

1

SQL 쿼리에서 $ date_time을 '로 둘러싼 문자열로 typecase하려고하기 때문입니다. 어느 주변 시세를 제거하거나 변환 문자열로 수행하여 :

$date_time->format('Y-m-d H:i:s'); 
5
$date = $date_time->format('Y-m-d H:i:s'); 

INSERT INTO .... VALUES (..., '$date'); 
1

을 당신이처럼 삽입 $datetime->format('Y-m-d H:i:s')를 사용해야합니다 : 나는 또한 mysql_* 기능을 사용하지 않는 것이 좋습니다

INSERT INTO users VALUES ('', '$username', '$password', '$email', '$website', '$image', '{$date_time->format('Y-m-d H:i:s')}') 

아니라 준비된 문장으로 PDO을 사용하거나 적어도 mysqli_* 기능을 사용하여 학습하십시오.

SQL 인젝션 방지를 위해 입력 내용을 살균하십시오.

0

가장 좋은 해결책은 테이블에 시간 소인 필드를 기본값 CURRENT_TIMESTAMP로 설정하는 것입니다. (

DATE_FORMAT :

<?php 
//Some code 
date_default_timezone_set('Europe/London'); 

//Other variables defined also 
$date_time = new DateTime(); 

$queryreg = mysql_query("INSERT INTO users VALUES 
     ('','$username','$password','$email','$website','$image', 
     '{$date_time->format('Y-m-d H:i:s')}')"); 
?> 
1

이 같은 날짜에 대한 문자열 형식을 제공 : 당신이 수동이 하나를 제어하려는 경우

은 그러나이 같은 문자열에 DateTime 개체를 변환해야 변수, "문자열 형식")

date_format ($ 날짜 _ 시간, "% m/% d/% y").