$phql = 'SELECT id,username,email FROM Users WHERE active = :active: LIMIT :offset:, :limit:';
$users = $this->modelsManager->executeQuery($phql, array('active' => 'Y', 'offset' => 100, 'limit' => 10));
//But Generates the error SQL statement
//SELECT `users`.`id` AS `id`, `users`.`username` AS `username`, `users`.`email` AS `email` FROM `users` WHERE `users`.`active` = 'Y' LIMIT '10' OFFSET '100'
任何人帮助我?只需使用$ this-> modelsManager ...,用$ phql绑定数字参数。
答案 0 :(得分:1)
我没有机会对其进行测试,但是从PHQL,modelsManager和Query文档中,您似乎可以通过创建查询来强制执行此操作而不是直接执行它,然后用你想要的特定类型执行它:
// Create the query
$phql = 'SELECT id,username,email FROM Users WHERE active = :active: LIMIT :offset:, :limit:';
$query = $this->modelsManager->createQuery($phql);
// Setup the values to bind
$values = array(
'active' => 'Y',
'offset' => 100,
'limit' => 10
);
// Setup the type for each value
$types = array(
'active' => Phalcon\Db\Column::BIND_PARAM_STR,
'offset' => Phalcon\Db\Column::BIND_PARAM_INT,
'limit' => Phalcon\Db\Column::BIND_PARAM_INT
);
// Execute the query
$users = $query->execute($values, $types);