2016-07-20 12 views
2

我想知道如何在phalcon控制器內使用參數執行查詢。Phalcon PhP - 如何使用參數在控制器內執行查詢

我的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:%' ; 

這裏是如何我試圖執行(我發現它在爾康的文件,但該示例不是控制器內)。

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

我知道,因爲你有ORM我不應該查詢DB這樣的,但是對於功能我正在那一定是這樣的,這個查詢是dymanic。

我的問題是如何在查詢中傳遞:searchQuery:的參數。

在此先感謝您的幫助。

回答

2

你幾乎說得對。您只需在綁定數組中添加百分比(%)。

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

還要注意我如何綁定的:在$sqlQuery SEARCHQUERY。它只使用single:而不是圍繞參數。這是因爲原始查詢直接使用數據庫連接,在我們的例子中是PDO。

更多的例子可以在這裏找到:https://docs.phalconphp.com/en/latest/api/Phalcon_Db_Adapter_Pdo.html

+0

謝謝!正是我需要的。 –

相關問題