Skip to content
This repository has been archived by the owner on Dec 25, 2020. It is now read-only.

Query Results

Kerem Güneş edited this page Jan 5, 2017 · 7 revisions

Query result should be two types after query actions.

In this example, result will be Oppa\Query\Result\Result;

$result = $agent->query('select * from `users`');
// or
$agent->query('select * from `users`');
$result = $agent->getResult();

// result comes with a bunch of useful methods
if ($result->hasData()) ..
if ($result->count() > 0) ..
if ($result->getRowsCount() > 0) ..
// or 
if ($agent->rowsCount() > 0) ..

// iterable
foreach ($result as $user) {
    dump $user->name;
}

// more useful methods for selects
$users     = $result->getData();
$userFirst = $result->getDataItem(0);
$userFirst = $result->item(0);
$userFirst = $result->itemFirst();
$userLast  = $result->itemLast();

But here, will be array or object or null;

$user = $agent->get('select * from `users`');
dump $user->name;

And here, will be array

$users = $agent->getAll('select * from `users`');
// or
$users = $agent->select('users');
if (!empty($users)) {
    foreach ($users as $user) {
        dump $user->name;
    }
}

After affected rows

// single insert results
$result = $agent->query("insert into `users` values(null,?,?)", ['Bob',30]);
$agent->insert('users', ['name' => 'Bob', 'old' => 30]);
// print last id
dump $agent->id();
dump $result->getId();

// multi insert results
$agent->insert('users', [['name' => 'Bob'], ['name' => 'Kerem']]);
// print last id
dump $agent->id();
dump $result->getId();
// print all last ids
dump $agent->ids();
dump $result->getIds();

// update results
$result = $agent->query('update `users` set old = 30 where id = ?', [1]);
dump $result->getRowsAffected();                             // int 1
dump $agent->update('users', ['old' => 30], 'id = ?', [1]);  // int 1
dump $agent->rowsAffected();                                 // int 1

// delete results
$result = $agent->query('delete from `users` where id = ?', [1]);
dump $result->getRowsAffected();                             // int 1
dump $agent->delete('users', 'id = ?', [1]);                 // int 1
dump $agent->rowsAffected();                                 // int 1

Reset results;

$result->reset(); 
Clone this wiki locally