Overview

Namespaces

  • Kotchasan
    • Cache
    • Database
    • Http
    • Log
    • Orm
  • None
  • PDF
  • PHP
  • Psr
    • Cache
    • Http
      • Message
    • Log

Classes

  • Db
  • DbCache
  • Driver
  • PdoMysqlDriver
  • Query
  • QueryBuilder
  • Schema
  • Sql

Exceptions

  • Exception
  • Overview
  • Namespace
  • Class
  • Tree

Class Sql

SQL Function.

Namespace: Kotchasan\Database
Author: Goragod Wiriya admin@goragod.com
Since: 1.0
Located at Kotchasan/Database/Sql.php
Methods summary
public static static
# AVG( string $column_name, string|null $alias = null, boolean $distinct = false )

หาค่าเฉลี่ยของคอลัมน์ที่เลือก

หาค่าเฉลี่ยของคอลัมน์ที่เลือก

Parameters

$column_name
ชื่อคอลัมน์
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง
$distinct
false (default) นับทุกคอลัมน์, true นับเฉพาะคอลัมน์ที่ไม่ซ้ำ

Returns

static

Assert

('id')->text() [==] 'AVG(id)'
public static self
# BETWEEN( string $column_name, string $min, string $max )

สร้างคำสั่ง BETWEEN ... AND ...

สร้างคำสั่ง BETWEEN ... AND ...

Parameters

$column_name
$min
$max

Returns

self

Assert

('create_date', 'create_date', 'U.create_date')->text() [==] "create_date BETWEEN create_date AND U.create_date"
('create_date', 'table_name.field_name', 'U.create_date')->text() [==] "create_date BETWEEN table_name.field_name AND U.create_date"
('create_date', 'database.table', '12-1-1')->text() [==] "create_date BETWEEN database.table AND '12-1-1'"
('create_date', 0, 1)->text() [==] "create_date BETWEEN 0 AND 1"
public static static
# CONCAT( array $fields, string|null $alias = null, string|null $separator = null )

สร้างคำสั่ง CONCAT หรือ CONCAT_WS.

สร้างคำสั่ง CONCAT หรือ CONCAT_WS.

Parameters

$fields
รายชื่อฟิลด์
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง
$separator
null (defailt) คืนค่าคำสั่ง CONCAT, ถ้าระบุเป็นค่าอื่นคืนค่าคำสั่ง CONCAT_WS

Returns

static

Throws

InvalidArgumentException
ถ้ารูปแบบของ $fields ไม่ใช่แอเรย์

Assert

(array('fname', 'lname'))->text() [==] "CONCAT(fname, lname)"
(array('U.fname', 'U.lname'), 'displayname')->text() [==] "CONCAT(U.fname, U.lname) AS displayname"
(array('fname', 'lname'), 'displayname', ' ')->text() [==] "CONCAT_WS(' ', fname, lname) AS displayname"
public static static
# COUNT( string $column_name = '*', string|null $alias = null, boolean $distinct = false )

นับจำนวนเร็คคอร์ดของคอลัมน์ที่เลือก

นับจำนวนเร็คคอร์ดของคอลัมน์ที่เลือก

Parameters

$column_name
$alias
$distinct
false (default) นับทุกคอลัมน์, true นับเฉพาะคอลัมน์ที่ไม่ซ้ำ

Returns

static

Assert

('id')->text() [==] 'COUNT(id)'
public static static
# DATE( string $column_name, string|null $alias = null )

แยกวันที่ออกจากคอลัมน์ชนิด DATETIME.

แยกวันที่ออกจากคอลัมน์ชนิด DATETIME.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('create_date')->text() [==] 'DATE(create_date)'
('create_date', 'date')->text() [==] 'DATE(create_date) AS date'
public static static
# DATEDIFF( string $column_name1, string $column_name2, string $alias = null )

หาความแตกต่างระหว่างวัน (คืนค่าเป็นจำนวนวันที่แตกต่างกัน).

หาความแตกต่างระหว่างวัน (คืนค่าเป็นจำนวนวันที่แตกต่างกัน).

Parameters

$column_name1
$column_name2
$alias

Returns

static

Assert

('create_date', Sql::NOW())->text() [==] "DATEDIFF(create_date, NOW())"
('2017-04-04', 'create_date')->text() [==] "DATEDIFF('2017-04-04', create_date)"
public static static
# DATE_FORMAT( string $column_name, string $format, string|null $alias = null )

จัดรูปแบบของวันที่ตอนแสดงผล.

จัดรูปแบบของวันที่ตอนแสดงผล.

Parameters

$column_name
$format
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

(Sql::NOW(), '%h:%i')->text() [==] "DATE_FORMAT(NOW(), '%h:%i')"
('create_date', '%Y-%m-%d', 'today')->text() [==] "DATE_FORMAT(create_date, '%Y-%m-%d') AS today"
public static static
# DAY( string $column_name, string|null $alias = null )

แยกวันที่ออกจากคอลัมน์ชนิด DATE DATETIME.

แยกวันที่ออกจากคอลัมน์ชนิด DATE DATETIME.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('date')->text() [==] 'DAY(date)'
('date', 'd')->text() [==] 'DAY(date) AS d'
public static static
# DISTINCT( string $column_name )

คืนค่าข้ออมูลที่ไม่ซ้ำกัน.

คืนค่าข้ออมูลที่ไม่ซ้ำกัน.

Parameters

$column_name

Returns

static

Assert

('id')->text() [==] 'DISTINCT id'
public static static
# FORMAT( string $column_name, string $format, string|null $alias = null )

จัดรูปแบบของคอลัมน์ตอนแสดงผล.

จัดรูปแบบของคอลัมน์ตอนแสดงผล.

Parameters

$column_name
$format
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

(Sql::NOW(), 'Y-m-d')->text() [==] "FORMAT(NOW(), 'Y-m-d')"
('create_date', 'Y-m-d', 'today')->text() [==] "FORMAT(create_date, 'Y-m-d') AS today"
public static self
# GROUP_CONCAT( string $column_name, string|null $alias = null, string $separator = ',', boolean $distinct = false, string|array $order = null )

สร้างคำสั่ง GROUP_CONCAT.

สร้างคำสั่ง GROUP_CONCAT.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง
$separator
ข้อความเชื่อมฟิลด์เข้าด้วยกัน ค่าเริมต้นคือ ,
$distinct
false (default) คืนค่ารายการที่ไม่ซ้ำ
$order
เรียงลำดับ

Returns

self

Assert

('C.topic', 'topic', ', ')->text() [==] "GROUP_CONCAT(C.topic SEPARATOR ', ') AS topic"
public static static
# HOUR( string $column_name, string|null $alias = null )

แยกชั่วโมงออกจากคอลัมน์ชนิด DATETIME.

แยกชั่วโมงออกจากคอลัมน์ชนิด DATETIME.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('create_date')->text() [==] 'HOUR(create_date)'
('create_date', 'date')->text() [==] 'HOUR(create_date) AS date'
public static self
# IFNULL( string $column_name1, string $column_name2, string|null $alias = null )

ฟังก์ชั่นสร้างคำสั่ง IFNULL.

ฟังก์ชั่นสร้างคำสั่ง IFNULL.

Parameters

$column_name1
$column_name2
$alias
ถ้าระบุจะมีการเติม alias ให้กับคำสั่ง

Returns

self

Assert

('create_date', 'U.create_date')->text() [==] "IFNULL(create_date, U.create_date)"
('create_date', 'U.create_date', 'test')->text() [==] "IFNULL(create_date, U.create_date) AS test"
public static self
# ISNOTNULL( string $column_name )

ฟังก์ชั่นสร้างคำสั่ง IS NOT NULL.

ฟังก์ชั่นสร้างคำสั่ง IS NOT NULL.

Parameters

$column_name

Returns

self

Assert

('U.id')->text() [==] "U.id IS NOT NULL"
public static self
# ISNULL( string $column_name )

ฟังก์ชั่นสร้างคำสั่ง IS NULL.

ฟังก์ชั่นสร้างคำสั่ง IS NULL.

Parameters

$column_name

Returns

self

Assert

('U.id')->text() [==] "U.id IS NULL"
public static static
# MAX( string $column_name, string|null $alias = null )

หาค่าสูงสุด.

หาค่าสูงสุด.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('id')->text() [==] 'MAX(id)'
public static static
# MIN( string $column_name, string|null $alias = null )

หาค่าต่ำสุด.

หาค่าต่ำสุด.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('id')->text() [==] 'MIN(id)'
public static static
# MINUTE( string $column_name, string|null $alias = null )

แยกนาทีออกจากคอลัมน์ชนิด DATETIME.

แยกนาทีออกจากคอลัมน์ชนิด DATETIME.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('create_date')->text() [==] 'MINUTE(create_date)'
('create_date', 'date')->text() [==] 'MINUTE(create_date) AS date'
public static static
# MONTH( string $column_name, string|null $alias = null )

แยกเดือนออกจากคอลัมน์ชนิด DATE DATETIME.

แยกเดือนออกจากคอลัมน์ชนิด DATE DATETIME.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('date')->text() [==] 'MONTH(date)'
('date', 'm')->text() [==] 'MONTH(date) AS m'
public static static
# NEXT( string $field, string $table_name, mixed $condition = null, array $alias = null, string $operator = 'AND', string $id = 'id', string $id,… )

ฟังก์ชั่นสร้าง SQL สำหรับหาค่าสูงสุด + 1 ใช้ในการหาค่า id ถัดไป.

ฟังก์ชั่นสร้าง SQL สำหรับหาค่าสูงสุด + 1 ใช้ในการหาค่า id ถัดไป.

Parameters

$field
ชื่อฟิลด์ที่ต้องการหาค่าสูงสุด
$table_name
ชื่อตาราง
$condition
(optional) query WHERE
$alias
$values (optional) แอเรย์สำหรับรับค่า value สำหรับการ bind
$operator
$alias (optional) ชื่อฟิลด์ที่ใช้คืนค่า ไม่ระบุ (null) หมายถึงไม่ต้องการชื่อฟิลด์
$id
$operator (optional) เช่น AND หรือ OR
$id,…
(optional )ชื่อฟิลด์ที่เป็น key

Returns

static

Assert

('id', 'world')->text() [==] '(1 + IFNULL((SELECT MAX(id) FROM world AS X), 0))'
('id', 'world', array(array('module_id', 'D.id')), 'next_id')->text() [==] '(1 + IFNULL((SELECT MAX(id) FROM world AS X WHERE module_id = D.id), 0)) AS next_id'
('id', 'world', array(array('module_id', 'D.id')), null)->text() [==] '(1 + IFNULL((SELECT MAX(id) FROM world AS X WHERE module_id = D.id), 0))'
public static static
# NOW( string|null $alias = null )

คืนค่าวันที่และเวลาปัจจุบัน.

คืนค่าวันที่และเวลาปัจจุบัน.

Parameters

$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

()->text() [==] 'NOW()'
('id')->text() [==] 'NOW() AS id'
public static self
# POSITION( string $substr, string $str, string|null $alias = null, integer $pos = 0 )

ค้นหาข้อความ ไม่พบคืนค่า 0, ตัวแรกคือ 1.

ค้นหาข้อความ ไม่พบคืนค่า 0, ตัวแรกคือ 1.

Parameters

$substr
ข้อความที่ค้นหา ถ้าเป็นชื่อฟิลด์ต้องครอบด้วย ``
$str
ข้อความต้นฉบับ ถ้าเป็นชื่อฟิลด์ต้องครอบด้วย ``
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง
$pos
ตำแหน่งเริ่มต้นค้นหา (default) หรือไม่ระบุ ค้นหาตั้งแต่ตัวแรก

Returns

self

Assert

('find', 'C.topic')->text() [==] "LOCATE('find', C.topic)"
public static static
# RAND( string $alias = null, string|null $alias,… )

สุ่มตัวเลข

สุ่มตัวเลข

Parameters

$alias
$column_name
$alias,…
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

()->text() [==] 'RAND()'
('id')->text() [==] 'RAND() AS id'
public static static
# SECOND( string $column_name, string|null $alias = null )

แยกวินาทีออกจากคอลัมน์ชนิด DATETIME.

แยกวินาทีออกจากคอลัมน์ชนิด DATETIME.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('create_date')->text() [==] 'SECOND(create_date)'
('create_date', 'date')->text() [==] 'SECOND(create_date) AS date'
public static static
# SUM( string $column_name, string|null $alias = '', boolean $distinct = false )

ผลรวมของคอลัมน์ที่เลือก

ผลรวมของคอลัมน์ที่เลือก

Parameters

$column_name
$alias
$distinct
false (default) รวมทุกคอลัมน์, true รวมเฉพาะคอลัมน์ที่ไม่ซ้ำ

Returns

static

Assert

('id')->text() [==] 'SUM(id)'
('table_name.id', 'id')->text() [==] 'SUM(table_name.id) AS id'
('U.id', 'id', true)->text() [==] 'SUM(DISTINCT U.id) AS id'
('U1.id', 'id', true)->text() [==] 'SUM(DISTINCT U1.id) AS id'
public static static
# TIMEDIFF( string $column_name1, string $column_name2, string $alias = null )

หาความแตกต่างระหว่างเวลา (คืนค่าเป็น H:m:i ที่แตกต่างกัน)

หาความแตกต่างระหว่างเวลา (คืนค่าเป็น H:m:i ที่แตกต่างกัน)

Parameters

$column_name1
$column_name2
$alias

Returns

static

Assert

('create_date', Sql::NOW())->text() [==] "TIMEDIFF(create_date, NOW())"
('2017-04-04', 'create_date')->text() [==] "TIMEDIFF('2017-04-04', create_date)"
public static static
# TIMESTAMPDIFF( string $unit, string $column_name1, string $column_name2, string $alias = null )

หาความแตกต่างระหว่างเวลา (คืนค่าตามรูปแบบ $unit)

หาความแตกต่างระหว่างเวลา (คืนค่าตามรูปแบบ $unit)

Parameters

$unit
FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR.
$column_name1
$column_name2
$alias

Returns

static

Assert

('HOUR', 'create_date', Sql::NOW())->text() [==] "TIMESTAMPDIFF(HOUR, create_date, NOW())"
('MONTH', '2017-04-04', 'create_date')->text() [==] "TIMESTAMPDIFF(MONTH, '2017-04-04', create_date)"
public static static
# WHERE( mixed $condition, string $operator = 'AND', string $id = 'id' )

สร้างคำสั่ง WHERE.

สร้างคำสั่ง WHERE.

Parameters

$condition
$operator
(optional) เช่น AND หรือ OR
$id
(optional )ชื่อฟิลด์ที่เป็น key

Returns

static

Assert

WHERE(1)->text() [==] "id = 1"
WHERE('1')->text() [==] "id = '1'"
WHERE(0.1)->text() [==] "id = 0.1"
WHERE('ทดสอบ')->text() [==] "id = 'ทดสอบ'"
WHERE(null)->text() [==] "id = NULL"
WHERE(0x64656)->text() [==] "id = 411222"
WHERE('SELECT * FROM')->text() [==] "id = :id0"
WHERE(Sql::create('EXISTS SELECT FROM WHERE'))->text() [==] "EXISTS SELECT FROM WHERE"
WHERE(array('id', '=', 1))->text() [==] "id = 1"
WHERE(array('U.id', '2017-01-01 00:00:00'))->text() [==] "U.id = '2017-01-01 00:00:00'"
WHERE(array('id', 'IN', array(1, '2', null)))->text() [==] "id IN (1, '2', NULL)"
WHERE(array('id', 'SELECT * FROM'))->text() [==] "id = :id0"
WHERE(array('U.id', 'NOT IN', Sql::create('SELECT * FROM')))->text() [==] "U.id NOT IN SELECT * FROM"
WHERE(array(array('id', 'IN', array(1, '2', null))))->text() [==] "id IN (1, '2', NULL)"
WHERE(array(array('U.id', 1), array('U.id', '!=', '1')))->text() [==] "U.id = 1 AND U.id != '1'"
WHERE(array(array(Sql::MONTH('create_date'), 1), array(Sql::YEAR('create_date'), 1)))->text() [==] "MONTH(create_date) = 1 AND YEAR(create_date) = 1"
WHERE(array(array('id', array(1, 'a')), array('id', array('G.id', 'G.id2'))))->text() [==] "id IN (1, 'a') AND id IN (G.id, G.id2)"
WHERE(array(array('id', array('', 'th'))))->text() [==] "id IN ('', 'th')"
WHERE(array(Sql::YEAR('create_date'), Sql::YEAR('create_date')))->text() [==] "YEAR(create_date) = YEAR(create_date)"
WHERE(array('ip', 'NOT IN', array('', '192.168.1.2')))->text() [==] "ip NOT IN ('', '192.168.1.2')"
WHERE(array(1, 1))->text() [==] "1 = 1"
public static static
# YEAR( string $column_name, string|null $alias = null )

แยกปีออกจากคอลัมน์ชนิด DATE DATETIME.

แยกปีออกจากคอลัมน์ชนิด DATE DATETIME.

Parameters

$column_name
$alias
ชื่อรองที่ต้องการ ถ้าไม่ระบุไม่มีชื่อรอง

Returns

static

Assert

('date')->text() [==] 'YEAR(date)'
('date', 'y')->text() [==] 'YEAR(date) AS y'
public
# __construct( string $sql = null )

class constructer.

class constructer.

Parameters

$sql
public static
# create( string $sql )

สร้าง Object Sql.

สร้าง Object Sql.

Parameters

$sql
public static string
# fieldName( string $column_name )

ใส่ `` ครอบชื่อคอลัมน์ ชื่อคอลัมน์ต้องเป็น ภาษาอังกฤษ ตัวเลข และ _ เท่านั้น ถ้ามีอักขระอื่นนอกจากนี้ คืนค่า ข้อความที่ส่งมา ครอบด้วย ''.

ใส่ `` ครอบชื่อคอลัมน์ ชื่อคอลัมน์ต้องเป็น ภาษาอังกฤษ ตัวเลข และ _ เท่านั้น ถ้ามีอักขระอื่นนอกจากนี้ คืนค่า ข้อความที่ส่งมา ครอบด้วย ''.

Parameters

$column_name

Returns

string

Throws

InvalidArgumentException
ถ้ารูปแบบของ $column_name ไม่ถูกต้อง

Assert

('U.id') [==] 'U.id'
('U1.id') [==] 'U1.id'
('U1.id DESC') [==] 'U1.id DESC'
('field_name') [==] 'field_name'
('table_name.field_name') [==] 'table_name.field_name'
('table_name.field_name') [==] 'table_name.field_name'
('table_name.field_name') [==] 'table_name.field_name'
('table_name.field_name') [==] 'table_name.field_name'
('table_name.field_name ASC') [==] 'table_name.field_name ASC'
('0x64656') [==] "0x64656"
(0x64656) [==] 411222
('DATE(day)') [==] "'DATE(day)'"
('DROP table') [==] "'DROP table'"
(array()) [throws] InvalidArgumentException
public array
# getValues( array $values = array() )

คืนค่าแอเร์ยเก็บพารามิเตอร์สำหรับการ bind รวมกับ $values.

คืนค่าแอเร์ยเก็บพารามิเตอร์สำหรับการ bind รวมกับ $values.

Parameters

$values

Returns

array
public static string
# quoteValue( mixed $column_name, array $value, & $values )

แปลงค่า Value สำหรับใช้ใน query.

แปลงค่า Value สำหรับใช้ใน query.

Parameters

$column_name
$value
$value
$values แอเรย์สำหรับรับค่า value สำหรับการ bind
$values

Returns

string

Throws

InvalidArgumentException
ถ้ารูปแบบของ $value ไม่ถูกต้อง

Assert

('id', 'ทดสอบ', $array) [==] "'ทดสอบ'"
('id', 'test', $array) [==] "'test'"
('id', 'abcde012345', $array) [==] "'abcde012345'"
('id', 123456, $array) [==] 123456
('id', 0.1, $array) [==] 0.1
('id', null, $array) [==] 'NULL'
('id', 'U.id', $array) [==] "U.id"
('id', 'U.id', $array) [==] 'U.id'
('id', 'domain.tld', $array) [==] "'domain.tld'"
('id', 'table_name.id', $array) [==] 'table_name.id'
('id', 'table_name.id', $array) [==] 'table_name.id'
('id', 'table_name.id', $array) [==] 'table_name.id'
('id', 'INSERT INTO', $array) [==] ':id0'
('id', array(1, '2', null), $array) [==] "(1, '2', NULL)"
('id', '0x64656', $array) [==] ':id0'
('id', 0x64656, $array) [==] 411222
('table_name.id', '0x64656', $array) [==] ':tablenameid0'
('U1.id', '0x64656', $array) [==] ':u1id0'
('U.id', '0x64656', $array) [==] ':uid0'
public static self
# strValue( string $value )

ฟังก์ชั่นสำหรับรับค่าเป็นสตริงค์เท่านั้น ผลลัพท์จะถูกครอบด้วย '' (ฟันหนู).

ฟังก์ชั่นสำหรับรับค่าเป็นสตริงค์เท่านั้น ผลลัพท์จะถูกครอบด้วย '' (ฟันหนู).

Parameters

$value

Returns

self
public string
# text( string $key = null )

คืนค่าคำสั่ง SQL เป็น string ถ้า $sql เป็น null จะคืนค่า :$key ใช้สำหรับการ bind.

คืนค่าคำสั่ง SQL เป็น string ถ้า $sql เป็น null จะคืนค่า :$key ใช้สำหรับการ bind.

Parameters

$key

Returns

string
Properties summary
protected string $sql

คำสั่ง SQL ที่เก็บไว้.

คำสั่ง SQL ที่เก็บไว้.

#
protected array $values

ตัวแปรเก็บพารามิเตอร์สำหรับการ bind.

ตัวแปรเก็บพารามิเตอร์สำหรับการ bind.

#
kotchasan API documentation generated by ApiGen