Kotchasan Framework Documentation
PDOResult
PDOResult
\Kotchasan\Result\PDOResult เป็น implementation ของ ResultInterface สำหรับ PDO queries
การสร้าง
use Kotchasan\Result\PDOResult;
// จาก PDOStatement
$result = new PDOResult($statement);
// กำหนด 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); // หรือ 'default' หรือ '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()
ดึงแถวถัดไป (object หรือ array ตาม format)
while ($row = $result->fetch()) {
echo $row->name;
}fetchAll()
ดึงทุกแถวเป็น array
$users = $result->fetchAll();
foreach ($users as $user) {
echo $user->name;
}fetchColumn(int $columnNumber = 0)
ดึง column เดียว
$id = $result->fetchColumn(); // column แรก
$name = $result->fetchColumn(1); // column ที่ 2rowCount()
จำนวนแถวที่ affected
// สำหรับ INSERT/UPDATE/DELETE
$affectedRows = $result->rowCount();getResult()
ดึง PDOStatement
$statement = $result->getResult();
// $statement instanceof \PDOStatementreset()
รีเซ็ตโดยการ execute statement ใหม่
$result->reset(); // execute statement อีกครั้งclose()
ปิด cursor
$result->close(); // เรียก closeCursor()ตัวอย่างการใช้งาน
Query และประมวลผล
$database = \Kotchasan\Database::create();
$result = $database->select('*')
->from('user')
->where([['status', 1]])
->execute();
// ดึงทีละแถว
while ($user = $result->fetch()) {
echo "{$user->id}: {$user->name}\n";
}
// ปิด 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(); // 4Internal Properties
| Property | Type | Description |
|---|---|---|
$statement |
\PDOStatement |
PDO statement instance |
$isEmpty |
bool |
Flag ว่า result หมดแล้วหรือยัง |
$resultFormat |
string |
Format: 'default', 'array', 'object' |
คลาสที่เกี่ยวข้อง
- ResultInterface - Interface
- ArrayResult - Array implementation
- Database - Core database class