如果我尝试使用Kohana ORM加载结果,则查询是正确的,但结果为空。如果我复制查询并在phpmyadmin中使用它,我会收到2行。
这是Kohana Code(ORM)
// DB work
$ftps = ORM::factory('ftp');
// if we activate many (we load only ready)
if ($this->request->param('mode') == 'activate') {
$ftps->where('ready', '=', '1');
// if we activate many (we load only ready)
} elseif ($this->request->param('mode') == 'not_ready') {
$ftps->where('ready', '=', '0');
}
// DB work
$ftps->and_where('activated', '=', '0')
->order_by('lastcheck', 'ASC')
->limit(intval($post['number']))
->find_all();
这是SQL查询(调试)
SELECT `ftp`.* FROM `ftps` AS `ftp` WHERE `activated` = '0' ORDER BY `lastcheck` ASC LIMIT 100 (1)
为什么Kohana无法像phpmyadmin那样加载相同的结果?这是同一个查询。我找不到解决办法。
感谢您的帮助
答案 0 :(得分:1)
这是我在使用Kohana时经常遇到的一个问题。对您的问题有一个简单但不直观的解释。如果你只是在......
$ftps->find_all();
然后尝试使用$ftp
作为结果集,这将无效,因为仅find_all()
函数返回结果集,{{1正在重置查询对象。相反,你需要做...
$ftps
和然后 $ftps = $ftps->find_all();
将包含结果集。
希望有所帮助!