Kotchasan Framework Documentation
Kotchasan\QueryBuilder\UpdateBuilder
Kotchasan\QueryBuilder\UpdateBuilder
UpdateBuilder สร้าง UPDATE queries
การใช้งาน
use Kotchasan\Database;
$db = Database::create();
// Basic UPDATE
$affected = $db->update('users')
->set([
'status' => 'inactive',
'updated_at' => date('Y-m-d H:i:s')
])
->where('id', '=', 1)
->execute();
echo "Updated {$affected} row(s)";เมธอดหลัก
update()
$db->update('tablename')set()
->set([
'column1' => 'new_value1',
'column2' => 'new_value2'
])where()
->where('column', '=', 'value')ตัวอย่าง
Update with Multiple Conditions
$affected = $db->update('products')
->set(['price' => 99.99])
->where('category', '=', 'electronics')
->where('stock', '>', 0)
->execute();Increment/Decrement
// ลดจำนวน stock
$db->update('products')
->set(['stock' => \Kotchasan\Database::raw('stock - 1')])
->where('id', '=', $productId)
->execute();การดู SQL (Debugging)
// สร้าง SQL โดยไม่ execute
$conn = new \Kotchasan\Connection\Connection(new \Kotchasan\Connection\MySQLDriver());
$qb = new \Kotchasan\QueryBuilder\UpdateBuilder($conn);
$sql = $qb->update('users')
->set(['status' => 'inactive'])
->where(['id', 1])
->toSql();
// ผลลัพธ์: UPDATE `users` SET `status` = :status WHERE (`id` = :qb_p0)ข้อควรระวัง
⚠️ สำคัญ: ใส่
where()เสมอเพื่อหลีกเลี่ยง update ทุก rows
- อย่าส่ง input ผู้ใช้เข้า raw SQL โดยตรง
- ใช้ parameter binding แทนการต่อ string
- ใช้ Sql::raw() เฉพาะกับ expressions ที่เชื่อถือได้