Phalcon PhP-如何在带有参数的控制器内执行查询


Phalcon PhP - how to execute query inside a controller with parameters

我想知道如何在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的文档中找到了它,但这个例子不在控制器中)。

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

我知道既然你有ORM,我就不应该这样查询DB,但对于我正在开发的功能,它必须是这样的,这个查询是死的。

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

提前感谢您的帮助。

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

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

还要注意我是如何在$sqlQuery中绑定:searchQuery的。它只使用single:,而不是围绕参数。这是因为Raw查询直接使用DB连接,在我们的情况下它是PDO。

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