Menu

## Recordset extends Query
in package
implements Iterator

Recordset.php : 24

Recordset base class.

This class provides methods for querying and manipulating database records.

##### Tags

see
  https://www.kotchasan.com/

### Interfaces, Classes and Traits

Iterator

### Table of Contents

$cfg : object
  Config class instance.
$db : Driver
  Database connection.
$debugger : int
  1 แสดง Query ข้อความอย่างเดียวสำหรับใส่ลงใน console 2 แสดง Query ด้านล่างจอภาพ
$request : Request
  Server request class instance.
$sqls : array<string|int, mixed>
  ตัวแปรเก็บคำสั่ง SQL
$datas : array<string|int, mixed>
$field : Field
$fields : array<string|int, mixed>
$firstRecord : int
$perPage : int
$toArray : bool
$values : array<string|int, mixed>
__construct() : mixed
  Create a new Recordset instance.
all() : array<string|int, mixed>|static
  Retrieve all records.
cacheOn() : static
  Enable caching.
count() : int
  Get the record count.
create() : static
  Create a new instance of the Recordset class.
createQuery() : mixed
  Build the SELECT query string.
createTmpTable() : static
  Create a temporary table.
createView() : bool
  Create a view based on the specified table.
current() : mixed
customQuery() : array<string|int, mixed>|object
  Execute a custom SQL query to retrieve data.
db() : Driver
  Get the database connection.
debug() : mixed
  คำสั่งสำหรับแสดง Query ออกทางหน้าจอ ใช้ในการ debug Query 1 แสดง Query ข้อความอย่างเดียวสำหรับใส่ลงใน console 2 แสดง Query ด้านล่างจอภาพ
delete() : bool
  Delete records based on the specified condition.
emptyTable() : bool
  Function to delete all data in the table.
execute() : array<string|int, mixed>|static
  Execute a query with pagination.
fieldExists() : bool
  Check if a field exists.
find() : Field
  Retrieve a single record by $primaryKey.
first() : bool|array<string|int, mixed>|Field
  Query for a single record.
getAllSettings() : object
  Get all database settings.
getField() : Field
  Get the Field object of the Recordset.
getFields() : array<string|int, mixed>
  Get all the field names of the Model.
getFullTableName() : string
  ฟังก์ชั่นอ่านชื่อตารางจากการตั้งค่าฐานข้อมุล คืนค่า ชื่อตารางรวม prefix ถ้าไม่มีชื่อกำหนดไว้ จะคืนค่า $table ครอบชื่อตารางด้วย ``
getSetting() : mixed
  Get the value of a database setting.
getTableName() : string
  ฟังก์ชั่นอ่านชื่อตารางจากการตั้งค่าฐานข้อมุล คืนค่า ชื่อตารางรวม prefix ถ้าไม่มีชื่อกำหนดไว้ จะคืนค่า $table
getValues() : array<string|int, mixed>
  Get the values for execution.
group() : string
  Function for grouping commands and connecting each group with an operator.
insert() : int|bool
  Insert data.
join() : static
  INNER JOIN table ON .
key() : mixed
  Inherited from Iterator.
limit() : static
  Limit the number of results and specify the starting record.
next() : mixed
  Inherited from Iterator.
order() : static
  Create a query with sorting.
query() : bool
  Process SQL statements that do not require a result, such as CREATE, INSERT, and UPDATE.
recordCount() : int
  Get the total number of records queried.
rewind() : mixed
  Inherited from Iterator.
take() : static
  Limit the number of results.
text() : string
  ฟังก์ชั่นสร้างคำสั่ง SQL เป็นข้อความ
toArray() : static
  Retrieve data as an array.
toQueryBuilder() : QueryBuilder
  Export the database query as a QueryBuilder instance.
update() : bool
  Update data.
updateAll() : bool
  Update data for all records.
valid() : mixed
  Determine if there are more records to iterate over.
where() : static
  Add a WHERE clause to the query.
aliasName() : string
  ฟังก์ชั่นสร้างคีย์ สำหรับการ execute
buildGroup() : string
  สร้าง query สำหรับ GROUP BY
buildJoin() : string
  สร้างคำสั่ง JOIN ถ้าไม่มี alias คืนค่าว่าง
buildOrder() : string
  สร้าง query เรียงลำดับ
buildSelect() : string
  ฟังก์ชั่นสร้าง query string สำหรับคำสั่ง SELECT
buildValue() : string
  แปลงข้อมูลรูปแบบ SQL รูปแบบ array('field1', 'condition', 'field2') ไม่ระบุ condition หมายถึง = หรือ IN
buildWhere() : string|array<string|int, mixed>
  ฟังก์ชั่นสร้างคำสั่ง WHERE คืนค่า string สำหรับคำสั่ง WHERE หรือคืนค่า array(where, values) สำหรับใช้กับการ bind
buildWhereValues() : array<string|int, mixed>
  ฟังก์ชั่นสร้างคำสั่ง WHERE และ values ไม่ใส่ alias ให้กับชื่อฟิลด์ คืนค่า ($condition, $values)
fieldName() : string
  แปลงข้อความสำหรับชื่อฟิลด์หรือชื่อตาราง
fieldValue() : string
  แปลงข้อความสำหรับ value
groupAnd() : Sql
  ฟังก์ชั่นสำหรับจัดกลุ่มคำสั่ง และ เชื่อมแต่ละกลุ่มด้วย AND
groupOr() : Sql
  ฟังก์ชั่นสำหรับจัดกลุ่มคำสั่ง และ เชื่อมแต่ละกลุ่มด้วย OR
quoteTableName() : string
  ฟังก์ชั่นอ่านชื่อตารางและชื่อรอง และใส่ ` ครอบชื่อตารางด้วย
buildQuery() : mixed
  Build a query based on the provided configuration.
doExecute() : array<string|int, mixed>|static
  Execute a query with pagination.
doJoin() : static
  Perform a JOIN operation on the query.
whereValue() : array<string|int, mixed>|string
  สร้างคำสั่ง WHERE

### Properties

#### $cfg

KBase.php : 26

Config class instance.

`protected static object $cfg`

#### $db

Db.php : 29

Database connection.

`protected Driver $db`

#### $debugger

Query.php : 28

1 แสดง Query ข้อความอย่างเดียวสำหรับใส่ลงใน console 2 แสดง Query ด้านล่างจอภาพ

`protected int $debugger = 0`

#### $request

KBase.php : 33

Server request class instance.

`protected static Request $request`

#### $sqls

Query.php : 34

ตัวแปรเก็บคำสั่ง SQL

`protected array<string|int, mixed> $sqls`

#### $datas

Recordset.php : 29
`private array<string|int, mixed> $datas`

The data records.

#### $field

Recordset.php : 34
`private Field $field`

The field class instance.

#### $fields

Recordset.php : 39
`private array<string|int, mixed> $fields = []`

The field names.

#### $firstRecord

Recordset.php : 44
`private int $firstRecord`

The starting record for pagination.

#### $perPage

Recordset.php : 49
`private int $perPage`

The number of records per page for pagination.

#### $toArray

Recordset.php : 54
`private bool $toArray = false`

Determines the type of result: true for array, false for model.

#### $values

Recordset.php : 59
`private array<string|int, mixed> $values`

If values are set, it will use prepare instead of execute.

### Methods

#### __construct()

Recordset.php : 66

Create a new Recordset instance.

`public __construct(string $field) : mixed`

##### Parameters

$field : string

  The name of the Field class.

##### Return values

mixed —

#### all()

Recordset.php : 89

Retrieve all records.

`public all([array<string|int, mixed>|string|null $fields = null ]) : array<string|int, mixed>|static`

Executes the SELECT query and returns the result as an array or model objects.

##### Parameters

$fields : array<string|int, mixed>|string|null = null

  (optional) The fields to select. Default is null (select all fields).

##### Return values

array<string|int, mixed>|static —

The result as an array or model objects.

#### cacheOn()

Recordset.php : 114

Enable caching.

`public cacheOn([bool $auto_save = true ]) : static`

Enables caching and specifies whether to automatically save the cache.

##### Parameters

$auto_save : bool = true

  (optional) Specifies whether to automatically save the cache. Default is true.

##### Return values

static —

#### count()

Recordset.php : 127

Get the record count.

`public count() : int`

Executes a COUNT query and returns the number of records matching the conditions.

##### Return values

int —

The number of records matching the conditions.

#### create()

Recordset.php : 153

Create a new instance of the Recordset class.

`public static create(string $field) : static`

##### Parameters

$field : string

  The name of the Field class.

##### Return values

static —

A new instance of the Recordset class.

#### createQuery()

Recordset.php : 164

Build the SELECT query string.

`public createQuery(mixed $start, mixed $count) : mixed`

##### Parameters

$start : mixed
$count : mixed

##### Return values

mixed —

#### createTmpTable()

Recordset.php : 194

Create a temporary table.

`public createTmpTable(string $table) : static`

##### Parameters

$table : string

  The table name.

##### Return values

static —

#### createView()

Recordset.php : 181

Create a view based on the specified table.

`public createView(string $table) : bool`

##### Parameters

$table : string

  The name of the table.

##### Return values

bool —

True if the view is created successfully, false otherwise.

#### current()

Recordset.php : 203
`public current() : mixed`

##### Return values

mixed —

#### customQuery()

Recordset.php : 220

Execute a custom SQL query to retrieve data.

`public customQuery(string $sql[, bool $toArray = true ][, array<string|int, mixed> $values = [] ]) : array<string|int, mixed>|object`

Returns the result as an array or object based on the $toArray parameter.

##### Parameters

$sql : string

  The query string.

$toArray : bool = true

  (optional) True to return the result as an array, false to return as an object. Default is true.

$values : array<string|int, mixed> = []

  (optional) If specified, it will use prepared statements instead of direct query execution.

##### Return values

array<string|int, mixed>|object —

The result data.

#### db()

Db.php : 46

Get the database connection.

`public db() : Driver`

##### Return values

Driver —

The database connection.

#### debug()

Query.php : 44

คำสั่งสำหรับแสดง Query ออกทางหน้าจอ ใช้ในการ debug Query 1 แสดง Query ข้อความอย่างเดียวสำหรับใส่ลงใน console 2 แสดง Query ด้านล่างจอภาพ

`public debug([int $value = 1 ]) : mixed`

##### Parameters

$value : int = 1

##### Return values

mixed —

#### delete()

Recordset.php : 235

Delete records based on the specified condition.

`public delete([mixed $condition = [] ][, bool $all = false ][, string $operator = 'AND' ]) : bool`

Returns true if successful.

##### Parameters

$condition : mixed = []

  The condition for deletion. It can be an int (primaryKey), string (SQL QUERY), or array.

$all : bool = false

  (optional) If false (default), delete a single record. If true, delete all records that match the condition.

$operator : string = 'AND'

  (optional) The operator to join each $condition. Use 'AND' (default) or 'OR'.

##### Return values

bool —

True if the deletion is successful, false otherwise.

#### emptyTable()

Recordset.php : 255

Function to delete all data in the table.

`public emptyTable() : bool`

Returns true if successful.

##### Return values

bool —

True if the operation is successful, false otherwise.

#### execute()

Recordset.php : 268

Execute a query with pagination.

`public execute([array<string|int, mixed>|string $fields = null ]) : array<string|int, mixed>|static`

SELECT ...

##### Parameters

$fields : array<string|int, mixed>|string = null

  (optional) If null, SELECT all fields. Otherwise, specify the fields to select.

##### Return values

array<string|int, mixed>|static —

#### fieldExists()

Recordset.php : 292

Check if a field exists.

`public fieldExists(string $field) : bool`

Returns true if the field exists, false otherwise.

##### Parameters

$field : string

  The field name.

##### Return values

bool —

True if the field exists, false otherwise.

#### find()

Recordset.php : 307

Retrieve a single record by $primaryKey.

`public find(int $id) : Field`

##### Parameters

$id : int

  The ID of the record to retrieve.

##### Return values

Field —

The record of the specified ID.

#### first()

Recordset.php : 321

Query for a single record.

`public first([array<string|int, mixed>|string $fields = null ]) : bool|array<string|int, mixed>|Field`

Returns false if not found, the record data if found. SELECT .... LIMIT 1

##### Parameters

$fields : array<string|int, mixed>|string = null

  (optional) If null, SELECT all fields. Otherwise, specify the fields to select.

##### Return values

bool|array<string|int, mixed>|Field —

False if not found, the record data if found.

#### getAllSettings()

Db.php : 70

Get all database settings.

`public getAllSettings() : object`

##### Return values

object —

The database settings object.

#### getField()

Recordset.php : 356

Get the Field object of the Recordset.

`public getField() : Field`

##### Return values

Field —

The Field object.

#### getFields()

Recordset.php : 366

Get all the field names of the Model.

`public getFields() : array<string|int, mixed>`

##### Return values

array<string|int, mixed> —

The array of field names.

#### getFullTableName()

Query.php : 58

ฟังก์ชั่นอ่านชื่อตารางจากการตั้งค่าฐานข้อมุล คืนค่า ชื่อตารางรวม prefix ถ้าไม่มีชื่อกำหนดไว้ จะคืนค่า $table ครอบชื่อตารางด้วย ``

`public getFullTableName(string $table) : string`

##### Parameters

$table : string

  ชื่อตารางตามที่กำหนดใน settings/datasbase.php

##### Return values

string —

#### getSetting()

Db.php : 58

Get the value of a database setting.

`public getSetting(string $key) : mixed`

##### Parameters

$key : string

  The setting key.

##### Return values

mixed —

The value of the setting.

#### getTableName()

Query.php : 72

ฟังก์ชั่นอ่านชื่อตารางจากการตั้งค่าฐานข้อมุล คืนค่า ชื่อตารางรวม prefix ถ้าไม่มีชื่อกำหนดไว้ จะคืนค่า $table

`public getTableName(string $table) : string`

##### Parameters

$table : string

  ชื่อตารางตามที่กำหนดใน settings/datasbase.php

##### Return values

string —

#### getValues()

Recordset.php : 379

Get the values for execution.

`public getValues() : array<string|int, mixed>`

##### Return values

array<string|int, mixed> —

The values for execution.

#### group()

Recordset.php : 393

Function for grouping commands and connecting each group with an operator.

`public group(array<string|int, mixed> $params[, string $operator = 'AND' ]) : string`

Returns the grouped query within ().

##### Parameters

$params : array<string|int, mixed>

  The commands in the format array('field1', 'condition', 'field2').

$operator : string = 'AND'

  The operator (AND or OR).

##### Return values

string —

The grouped query.

#### insert()

Recordset.php : 413

Insert data.

`public insert(Field $field) : int|bool`

Returns the ID of the inserted data on success, false on failure.

##### Parameters

$field : Field

  The field object to be inserted.

##### Return values

int|bool —

The ID of the inserted data if successful, false if an error occurred.

#### join()

Recordset.php : 438

INNER JOIN table ON .

`public join(string $field, string $type, mixed $on) : static`

..

##### Parameters

$field : string

  The field class of the table to join.

$type : string

  The type of join (e.g., LEFT, RIGHT, INNER...).

$on : mixed

  The join condition.

##### Return values

static —

#### key()

Recordset.php : 446

Inherited from Iterator.

`public key() : mixed`

##### Return values

mixed —

#### limit()

Recordset.php : 461

Limit the number of results and specify the starting record.

`public limit(int $count, int $start) : static`

##### Parameters

$count : int

  The number of results to limit.

$start : int

  The starting record.

##### Return values

static —

#### next()

Recordset.php : 473

Inherited from Iterator.

`public next() : mixed`

##### Return values

mixed —

#### order()

Recordset.php : 487

Create a query with sorting.

`public order(mixed $sorts) : static`

##### Parameters

$sorts : mixed

  An array of sort orders ('field ASC', 'field DESC') or multiple arguments 'field ASC', 'field DESC', ...

##### Return values

static —

#### query()

Recordset.php : 506

Process SQL statements that do not require a result, such as CREATE, INSERT, and UPDATE.

`public query(string $sql[, array<string|int, mixed> $values = [] ]) : bool`

Returns true on success, false on failure.

##### Parameters

$sql : string

  The SQL statement to be processed.

$values : array<string|int, mixed> = []

  If specified, it forces the use of prepared statements instead of query.

##### Return values

bool —

True if successful, false if an error occurred.

#### recordCount()

Recordset.php : 516

Get the total number of records queried.

`public recordCount() : int`

##### Return values

int —

The total number of records.

#### rewind()

Recordset.php : 524

Inherited from Iterator.

`public rewind() : mixed`

##### Return values

mixed —

#### take()

Recordset.php : 539

Limit the number of results.

`public take() : static`

LIMIT $start, $count.

##### Return values

static —

#### text()

Query.php : 83

ฟังก์ชั่นสร้างคำสั่ง SQL เป็นข้อความ

`public text() : string`

##### Return values

string —

#### toArray()

Recordset.php : 558

Retrieve data as an array.

`public toArray() : static`

This function should be called before querying data.

##### Return values

static —

#### toQueryBuilder()

Recordset.php : 569

Export the database query as a QueryBuilder instance.

`public toQueryBuilder() : QueryBuilder`

##### Return values

QueryBuilder —

The QueryBuilder instance.

#### update()

Recordset.php : 582

Update data.

`public update(array<string|int, mixed> $condition, array<string|int, mixed>|Field $save) : bool`

##### Parameters

$condition : array<string|int, mixed>

  The condition for the update.

$save : array<string|int, mixed>|Field

  The data to be saved.

##### Return values

bool —

True if successful, false if an error occurred.

#### updateAll()

Recordset.php : 618

Update data for all records.

`public updateAll(array<string|int, mixed> $save) : bool`

##### Parameters

$save : array<string|int, mixed>

  The data to be saved (array('key1' => 'value1', 'key2' => 'value2', ...)).

##### Return values

bool —

True if successful, false if an error occurred.

#### valid()

Recordset.php : 628

Determine if there are more records to iterate over.

`public valid() : mixed`

##### Return values

mixed —

The validity of the current record.

#### where()

Recordset.php : 644

Add a WHERE clause to the query.

`public where([mixed $where = [] ][, string $operator = 'AND' ]) : static`

##### Parameters

$where : mixed = []

  The condition(s) for the WHERE clause.

$operator : string = 'AND'

  (optional) The operator to use for multiple conditions (AND by default).

##### Return values

static —

The updated Recordset instance.

#### aliasName()

Query.php : 103

ฟังก์ชั่นสร้างคีย์ สำหรับการ execute

`protected aliasName(string $name[, string $prefix = '' ]) : string`

##### Parameters

$name : string

  ชื่อฟิลด์

$prefix : string = ''

  คำนำหน้าชื่อฟิลด์ ใช้เพื่อป้องกันการใช้ตัวแปรซ้ำ

##### Return values

string —

#### buildGroup()

Query.php : 115

สร้าง query สำหรับ GROUP BY

`protected buildGroup(array<string|int, mixed>|string $fields) : string`

##### Parameters

$fields : array<string|int, mixed>|string

  array('U.id', 'U.username') หรือ string U.id

##### Return values

string —

#### buildJoin()

Query.php : 134

สร้างคำสั่ง JOIN ถ้าไม่มี alias คืนค่าว่าง

`protected buildJoin(string|array<string|int, mixed> $table, string $type, mixed $on) : string`

##### Parameters

$table : string|array<string|int, mixed>

  ชื่อตารางต้องมี alias ด้วย หรือ (QueryBuilder, alias)

$type : string

  เข่น INNER OUTER LEFT RIGHT

$on : mixed

  query string หรือ array

##### Return values

string —

#### buildOrder()

Query.php : 161

สร้าง query เรียงลำดับ

`protected buildOrder(array<string|int, mixed>|string $fields) : string`

##### Parameters

$fields : array<string|int, mixed>|string

  array('field ASC','field DESC') หรือ 'field ASC', 'field DESC', ...

##### Return values

string —

#### buildSelect()

Query.php : 193

ฟังก์ชั่นสร้าง query string สำหรับคำสั่ง SELECT

`protected buildSelect(string|array<string|int, mixed>|QueryBuilder $fields, mixed $alias) : string`

##### Parameters

$fields : string|array<string|int, mixed>|QueryBuilder
$alias : mixed

##### Return values

string —

#### buildValue()

Query.php : 260

แปลงข้อมูลรูปแบบ SQL รูปแบบ array('field1', 'condition', 'field2') ไม่ระบุ condition หมายถึง = หรือ IN

`protected buildValue(array<string|int, mixed> $params) : string`

##### Parameters

$params : array<string|int, mixed>

##### Return values

string —

#### buildWhere()

Query.php : 314

ฟังก์ชั่นสร้างคำสั่ง WHERE คืนค่า string สำหรับคำสั่ง WHERE หรือคืนค่า array(where, values) สำหรับใช้กับการ bind

`protected buildWhere(mixed $condition[, string $operator = 'AND' ][, string $id = 'id' ]) : string|array<string|int, mixed>`

##### Parameters

$condition : mixed
$operator : string = 'AND'

  (optional) เช่น AND หรือ OR

$id : string = 'id'

  (optional )ชื่อฟิลด์ที่เป็น key

##### Return values

string|array<string|int, mixed> —

#### buildWhereValues()

Query.php : 374

ฟังก์ชั่นสร้างคำสั่ง WHERE และ values ไม่ใส่ alias ให้กับชื่อฟิลด์ คืนค่า ($condition, $values)

`protected buildWhereValues(mixed $condition[, string $operator = 'AND' ][, string $id = 'id' ]) : array<string|int, mixed>`

##### Parameters

$condition : mixed
$operator : string = 'AND'

  (optional) เช่น AND หรือ OR

$id : string = 'id'

  (optional )ชื่อฟิลด์ที่เป็น key

##### Return values

array<string|int, mixed> —

#### fieldName()

Query.php : 424

แปลงข้อความสำหรับชื่อฟิลด์หรือชื่อตาราง

`protected fieldName(string $name) : string`

##### Parameters

$name : string

##### Return values

string —

#### fieldValue()

Query.php : 471

แปลงข้อความสำหรับ value

`protected fieldValue(string $value) : string`

##### Parameters

$value : string

##### Return values

string —

#### groupAnd()

Query.php : 496

ฟังก์ชั่นสำหรับจัดกลุ่มคำสั่ง และ เชื่อมแต่ละกลุ่มด้วย AND

`protected groupAnd(array<string|int, mixed> $params) : Sql`

##### Parameters

$params : array<string|int, mixed>

  คำสั่ง รูปแบบ array('field1', 'condition', 'field2')

##### Return values

Sql —

#### groupOr()

Query.php : 515

ฟังก์ชั่นสำหรับจัดกลุ่มคำสั่ง และ เชื่อมแต่ละกลุ่มด้วย OR

`protected groupOr(array<string|int, mixed> $params) : Sql`

##### Parameters

$params : array<string|int, mixed>

  คำสั่ง รูปแบบ array('field1', 'condition', 'field2')

##### Return values

Sql —

#### quoteTableName()

Query.php : 534

ฟังก์ชั่นอ่านชื่อตารางและชื่อรอง และใส่ ` ครอบชื่อตารางด้วย

`protected quoteTableName(string $table) : string`

##### Parameters

$table : string

  ชื่อตารางตามที่กำหนดใน settings/datasbase.php

##### Return values

string —

#### buildQuery()

Recordset.php : 663

Build a query based on the provided configuration.

`private buildQuery(string $method, mixed $param) : mixed`

##### Parameters

$method : string

  The query method to build.

$param : mixed

  The parameters for the query.

##### Return values

mixed —

#### doExecute()

Recordset.php : 691

Execute a query with pagination.

`private doExecute(int $start, int $end) : array<string|int, mixed>|static`

##### Parameters

$start : int

  The start index of the query results.

$end : int

  The end index of the query results.

##### Return values

array<string|int, mixed>|static —

The query results or the updated Recordset instance.

#### doJoin()

Recordset.php : 716

Perform a JOIN operation on the query.

`private doJoin(string $field, string $type, string|array<string|int, mixed> $on) : static`

##### Parameters

$field : string

  The name of the field or table to join.

$type : string

  The type of join operation (e.g., INNER, LEFT, RIGHT).

$on : string|array<string|int, mixed>

  The join condition(s).

##### Return values

static —

The updated Recordset instance.

#### whereValue()

Query.php : 560

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

`private whereValue(array<string|int, mixed> $params[, int|null $i = null ]) : array<string|int, mixed>|string`

##### Parameters

$params : array<string|int, mixed>
$i : int|null = null

##### Return values

array<string|int, mixed>|string —

## Search results