PHP Phalcon Framework如何使用phql和modelsManager防止转义号?

时间:2015-03-16 16:30:21

标签: php phalcon

$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绑定数字参数。

1 个答案:

答案 0 :(得分:1)

我没有机会对其进行测试,但是从PHQLmodelsManagerQuery文档中,您似乎可以通过创建查询来强制执行此操作而不是直接执行它,然后用你想要的特定类型执行它:

// 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);