Phalcon PhP - 如何使用参数在控制器内执行查询

时间:2016-07-20 14:03:35

标签: php mysql pdo phalcon

我想知道如何使用参数在phalcon控制器内执行查询。

我的SQL查询:

SELECT a.*, getApplicationData(a.id) as json_data 
FROM application a 
INNER JOIN application_data d on d.application_id = a.id 
WHERE a.form_id=1 
AND d.firstname LIKE '%:searchQuery:%' ;

以下是我试图执行的方式(我在Phalcon的doc中找到了它,但示例不在控制器中)。

$applications = $this->db->query(
    $sqlQuery, 
    array('searchQuery'=>$searchQuery)
)->fetchAll();

我知道既然你有ORM我不应该像这样查询数据库,但对于我正在研究的功能必须是这样的,这个查询是动态的。

我的问题是如何在查询中传递:searchQuery:的参数。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

你几乎做对了。您只需在绑定数组中添加百分比(%)。

$sqlQuery = 'SELECT * FROM events WHERE title LIKE :searchQuery';
$applications = $this->db->query(
    $sqlQuery, 
    array('searchQuery'=> '%' . $searchQuery . '%')
)->fetchAll();

另请注意我如何绑定$sqlQuery中的:searchQuery 。它只使用单个:而不是包围参数。这是因为Raw查询直接使用数据库连接,在我们的例子中它是PDO。

可在此处找到更多示例:https://docs.phalconphp.com/en/latest/api/Phalcon_Db_Adapter_Pdo.html