2014-04-16 1 views
1
$remote_ip = $_SERVER["REMOTE_ADDR"]; 
     $today_date = $todaydate->format("Y-m-d H:i:s"); 
     $tomorrow_date = $tomorrowdate->format("Y-m-d H:i:s"); 

     $conditions['conditions'] = array('ipaddress = ? AND dateattempt > ? AND dateattempt < ?', $remote_ip, $today_date, $tomorrow_date); 

     $attempts = self::all($conditions); 
     //$attempts = self :: all(array('conditions' => array('ipaddress = ?',$_SERVER["REMOVE_ADDR"]))); 

/*   print_r($_SERVER); */ 
/*   print_r($today_date); */ 
/*   print_r($tomorrow_date); */ 

     echo self::connection()->last_query; 

위의 코드는 다음과 같습니다. 나는 쿼리를 올바르게 출력했는지 알 수 있도록 쿼리를 출력하려고합니다. 쿼리가 제대로 실행되지만 명령 자체 :: 연결() -> last_query는 다음 인쇄 다음에PHP ActiveRecord last_query가 채워지지 않으십니까?

SELECT * FROM `table_name` WHERE ipaddress = ? AND dateattempt > ? AND dateattempt < ? 

문제가 작성해야합니까? 조건은 있지만 그렇지 않은 상태. 그걸 채워 넣은 결과를 나에게 보여주기 위해 어떻게해야합니까?

답변

1

last_query은 원시 SQL입니다. PHP ActiveRecord는 PDO's prepared statement을 사용하므로 실제 쿼리가 표시되지 않습니다.

로거를 사용하면됩니다. 값이 여기에 표시됩니다 (the code). 나는이 시도를 포기하고 내가 가진 질문을 다시보고 http://www.phpactiverecord.org/boards/4/topics/1119-re-show-last-sql-query

+0

:에서

$log = Log::singleton('file', 'my.log'); //using PEAR Log ActiveRecord\Config::instance()->set_logging(true); ActiveRecord\Config::instance()->set_logger($log); 

예. 감사! –