способ использования условия DATE_SUB (CURDATE (), INTERVAL 2 DAY) в cakephp - PullRequest
3 голосов
/ 31 января 2012

Я использую CakePHP и создаю это условие:

$conditions = array("Userword.levelid"=>0, "Userword.userid"=>$this->Auth->user('UserId'),"date(Userword.date)"=>"DATE_SUB(CURDATE(),INTERVAL 0 DAY)");  
$Userword = $this->paginate(null, $conditions);

торт с помощью этого выбора:

`Userword`.`userwordid`, `Userword`.`userid`, `Userword`.`wordid`, `Userword`.`date`, `Userword`.`levelid`, `Word`.`wordid`, `Word`.`word`, `Word`.`meaning`, `User`.`UserId`, `User`.`Email`, `User`.`password`, `User`.`username`, `User`.`cell`, `User`.`web` FROM `userwords` AS `Userword` LEFT JOIN `words` AS `Word` ON (`Userword`.`wordid` = `Word`.`wordid`) LEFT JOIN `users` AS `User` ON (`Userword`.`userid` = `User`.`UserId`) WHERE date(`Userword`.`date`) = 'DATE_SUB(CURDATE(),INTERVAL 2 DAY)'  

, но при этом выбранном mysql не может вернуть запись, потому что в этом выделении cakephp использует этот символ (') в последнем отрывке. когда я удаляю этот символ и проверяю этот код в phpmyadmin, этот код возвращает строки. два изображения ниже показывают это:

cakephp mysql code

image' character ">

1 Ответ

9 голосов
/ 31 января 2012

Только не отделяйте его как пару ключ => значение:

$conditions = array(
   ...
   'DATE(Userword.date) = DATE_SUB(CURDATE(), INTERVAL 0 DAY)'
);
...