8. Running raw SQL queries¶
$users = $db->rawQuery(‘SELECT * from users where id >= ?’, Array (10)); foreach ($users as $user) {
print_r ($user);}
To avoid long if checks there are couple helper functions to work with raw query select results:
Get 1 row of results:
$user = $db->rawQueryOne (‘select * from users where id=?’, Array(10)); echo $user[‘login’]; // Object return type $user = $db->ObjectBuilder()->rawQueryOne (‘select * from users where id=?’, Array(10)); echo $user->login;
Get 1 column value as a string:
$password = $db->rawQueryValue (‘select password from users where id=? limit 1’, Array(10)); echo “Password is {$password}”; NOTE: for a rawQueryValue() to return string instead of an array ‘limit 1’ should be added to the end of the query.
Get 1 column value from multiple rows:
$logins = $db->rawQueryValue (‘select login from users limit 10’); foreach ($logins as $login)
echo $login;
8.1. More advanced examples:¶
$params = Array(1, ‘admin’); $users = $db->rawQuery(“SELECT id, firstName, lastName FROM users WHERE id = ? AND login = ?”, $params); print_r($users); // contains Array of returned rows
// will handle any SQL query $params = Array(10, 1, 10, 11, 2, 10); $q = “(
- SELECT a FROM t1
- WHERE a = ? AND B = ? ORDER BY a LIMIT ?
- ) UNION (
- SELECT a FROM t2
- WHERE a = ? AND B = ? ORDER BY a LIMIT ?
)”; $resutls = $db->rawQuery ($q, $params); print_r ($results); // contains Array of returned rows