Kotchasan Framework Documentation

Kotchasan Framework Documentation

QueryBuilder Overview

EN 05 Feb 2026 06:23

QueryBuilder Overview

QueryBuilder is a fluent interface for building SQL queries safely and clearly.

Table of Contents

  1. Overview
  2. Builder Classes
  3. Basic Usage
  4. Examples

Overview

Class Description
SelectBuilder Build SELECT queries
InsertBuilder Build INSERT queries
UpdateBuilder Build UPDATE queries
DeleteBuilder Build DELETE queries

Basic Usage

use Kotchasan\Database;

$db = Database::create();

// SELECT
$users = $db->select('*')
    ->from('users')
    ->where(['status', 'active'])
    ->orderBy('name')
    ->fetchAll();

// INSERT
$db->insert('users')
    ->values(['name' => 'John', 'email' => 'john@example.com'])
    ->execute();

// UPDATE
$db->update('users')
    ->set(['status' => 'inactive'])
    ->where(['id', 1])
    ->execute();

// DELETE
$db->delete('users')
    ->where(['id', 1])
    ->execute();

Common Methods

where()

// Simple
->where(['column', 'value'])

// Multiple conditions
->where(['status', 'active'])
->where(['created_at', '>', '2024-01-01'])

// Array format
->where([
    ['status', '=', 'active'],
    ['role', '=', 'admin']
])

orderBy() / groupBy()

->orderBy('name')
->orderBy('created_at', 'DESC')
->groupBy('category')

limit()

->limit(10)
->limit(10, 20)

join()

->join('orders O', 'users.id = O.user_id')
->leftJoin('profiles P', 'users.id = P.user_id')
->rightJoin('addresses A', 'users.id = A.user_id')

Builder Classes