Execute Custom Queries and SQL in CakePHP 3 & 4
Execute Custom & Parameterized SQL in CakePHP 4 & CakePHP 3
CakePHP4:
Add in your controller:
use Cake\Datasource\ConnectionManager;
Example 1:
$conn = ConnectionManager::get('default'); $stmt = $conn->execute('UPDATE articles SET views_logged_in=views_logged_in+1, some_field=? WHERE id=?', array('some_field_value', $id));
Example 2 - Parameterized with a subquery:
$conn = ConnectionManager::get('default'); $userList = $conn->execute(" SELECT users.id, users.username, users.first_name, users.last_name, users.organization_name, users.email FROM users WHERE users.is_deleted<>'1' AND users.id <> :origUserId AND users.id IN ( SELECT user_id FROM grant_applications WHERE is_deleted <> 1 GROUP BY user_id ) ", [ 'origUserId' => $origUserId ] )->fetchAll('assoc');
CakePHP3:
Add in your controller:
use Cake\Datasource\ConnectionManager;
$conn = ConnectionManager::get('default'); $stmt = $conn->execute('SELECT * FROM customers'); $results = $stmt ->fetchAll('assoc');