Kotchasan Framework Documentation

Kotchasan Framework Documentation

PDOResult

EN 05 Feb 2026 06:23

PDOResult

\Kotchasan\Result\PDOResult is a ResultInterface implementation for PDO queries.

Creation

use Kotchasan\Result\PDOResult;

// From PDOStatement
$result = new PDOResult($statement);

// Define result format
$result = new PDOResult($statement, 'array');

Constructor

public function __construct(\PDOStatement $statement, ?string $resultFormat = null)
Parameter Type Description
$statement \PDOStatement PDOStatement instance
$resultFormat string\|null Format: 'default', 'object', 'array'

Result Formats

Object Format (Default)

$result = new PDOResult($statement);  // or 'default' or 'object'

$row = $result->fetch();
echo $row->id;
echo $row->name;

Array Format

$result = new PDOResult($statement, 'array');

$row = $result->fetch();
echo $row['id'];
echo $row['name'];

Methods

fetch()

Fetch next row (object or array according to format).

while ($row = $result->fetch()) {
    echo $row->name;
}

fetchAll()

Fetch all rows as array.

$users = $result->fetchAll();
foreach ($users as $user) {
    echo $user->name;
}

fetchColumn(int $columnNumber = 0)

Fetch single column.

$id = $result->fetchColumn();      // First column
$name = $result->fetchColumn(1);   // Second column

rowCount()

Number of affected rows.

// For INSERT/UPDATE/DELETE
$affectedRows = $result->rowCount();

getResult()

Get PDOStatement.

$statement = $result->getResult();
// $statement instanceof \PDOStatement

reset()

Reset by re-executing the statement.

$result->reset();  // Execute statement again

close()

Close cursor.

$result->close();  // Calls closeCursor()

Usage Examples

Query and Process

$database = \Kotchasan\Database::create();

$result = $database->select('*')
    ->from('user')
    ->where([['status', 1]])
    ->execute();

// Fetch row by row
while ($user = $result->fetch()) {
    echo "{$user->id}: {$user->name}\n";
}

// Close cursor
$result->close();

Check Empty

$result = $database->select('*')
    ->from('user')
    ->where([['id', 999]])
    ->execute();

if ($result->isEmpty()) {
    echo "User not found";
}

Get Column Count

$result = $database->select('id', 'name', 'email', 'phone')
    ->from('user')
    ->execute();

echo "Columns: " . $result->columnCount();  // 4

Internal Properties

Property Type Description
$statement \PDOStatement PDO statement instance
$isEmpty bool Flag indicating if result is empty
$resultFormat string Format: 'default', 'array', 'object'