【问题标题】:Phalcon PhP - how to execute query inside a controller with parametersPhalcon PhP - 如何在带有参数的控制器内执行查询
【发布时间】:2016-07-20 14:03:35
【问题描述】:

我想知道如何在 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,我不应该像这样查询数据库,但是对于我正在开发的功能,它必须是这样的,这个查询是动态的。

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

提前感谢您的帮助。

【问题讨论】:

    标签: php mysql pdo phalcon


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢!正是我需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多