[英]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'
ANY one help me ? 有人帮我吗? just using $this->modelsManager...,whith $phql to bind numeric parameters.
只需使用$ this-> modelsManager ...,用$ phql绑定数字参数。
I haven't had the chance to test it out, but from the PHQL , modelsManager , and Query documentation, it seems that you can enforce it by creating a query rather than executing it straight away, and then executing it with the specific types you want: 我还没有机会对其进行测试,但是从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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.