PHP Phalcon 框架如何使用 phql AND 模型管理器防止转义数


PHP Phalcon Framework how to prevent escape number using phql AND modelsManager?

$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->模型管理器...,$phql绑定数字参数。

我没有机会测试它,但是从 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);