2016-07-20 8 views
2

Ich würde gerne wissen, wie kann ich eine Abfrage, in einem Phalcon-Controller, mit Parametern ausführen.Phalcon PhP - wie Abfrage in einem Controller mit Parametern ausführen

My SQL Query:

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

Hier ist, wie ich versuche, auszuführen (ich es in Phalcon der doc, aber das Beispiel nicht in einem Controller).

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

Ich weiß, dass da Sie die ORM sollte ich nicht die DB wie diese werden Abfragen, aber für die Funktion arbeite ich an es so sein muss, diese Abfrage dymanic ist.

Meine Frage ist, wie Sie den Parameter für die :searchQuery: in der Abfrage übergeben.

Vielen Dank im Voraus für jede Hilfe.

Antwort

2

Sie haben fast alles richtig gemacht. Sie mussten nur die Prozente (%) im Bind-Array hinzufügen.

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

Beachten Sie auch, wie ich die binded: Search im $sqlQuery. Es verwendet nur single: anstatt den Parameter zu umgeben. Dies liegt daran, dass Raw-Abfragen direkt die DB-Verbindung verwenden, in unserem Fall ist es PDO.

Weitere Beispiele finden Sie hier: https://docs.phalconphp.com/en/latest/api/Phalcon_Db_Adapter_Pdo.html

+0

Vielen Dank! Genau das, was ich brauchte. –

Verwandte Themen