3

私は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);

この select を使用したケーキ:

`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)'  

しかし、この select では、mysql はレコードを返すことができません。これは、この select の cakephp が'最後のパッセージでこの文字 ( ) を使用しているためです。この文字を削除して、このコードでphpmyadminこのコードをテストすると、行が返されます。以下の 2 つの画像はこれを示しています。

CakePHP mysql コード

<code>'</code> 文字のない phpmyadmin の画像

4

1 に答える 1

9

キー=>値のペアとして分離しないでください。

$conditions = array(
   ...
   'DATE(Userword.date) = DATE_SUB(CURDATE(), INTERVAL 0 DAY)'
);
于 2012-01-31T08:12:53.983 に答える