Scriptlog Docs

Scriptlog Documentation

Code reference for the Scriptlog codebase

User Tools

Site Tools


scriptlog:lib:core:db

This is an old revision of the document!


Db

Layer: Core · Source: lib/core/Db.php:22 (lines 22–519)


class Db implements DbInterface

This class provides a database abstraction layer using PDO with MySQL functionality. It implements all methods defined in DbInterface for consistent database operations.

Docblock Metadata

Tag Value
@category Core Class
@author M.Noermoehammad
@license MIT
@version 1.0
@since Since Release 1.0
@see DbInterface

Inheritance

Relation Type Meaning
implements ''DbInterface'' contract

Constants (1)

Visibility Name Value Line
private STATEMENT_CACHE_MAX 64; 88

Properties (0)

None declared.

Methods (21)

Visibility Method Summary Line
public __construct() Constructor - Initializes the database connection if config is provided 103
public setTablePrefix() Set table prefix 115
public getTablePrefix() Get table prefix 125
public setDbConnection() Establishes a database connection using PDO 139
public isConnected() Checks if database connection is active 170
public closeDbConnection() Closes the database connection 180
private ensureConnection() Ensures database connection is established before operations 192
public dbQuery() Executes a database query and returns the statement 207
public dbSelect() Executes a SELECT query and returns results 226
private prepareCached() Prepare a SQL statement with table prefix applied, reusing already 251
public clearStatementCache() Forget all cached prepared statements. 271
public dbInsert() Inserts a new record into the specified table 285
public dbLastInsertId() Returns the last inserted ID 316
public dbUpdate() Updates records in the specified table 332
public dbReplace() Performs an INSERT or UPDATE (upsert) operation 366
public dbDelete() Deletes records from the specified table 405
public dbTransaction() Begins a transaction 436
public dbCommit() Commits a transaction 448
public dbRollBack() Rolls back a transaction 460
public prepare() Prepare a SQL statement with table prefix applied. 477
private applyTablePrefix() Apply table prefix to SQL query 490

__construct()

public function __construct(array $config = [], array $options = [])

lines 103–108 (6)

Constructor - Initializes the database connection if config is provided

Parameter Type Default Description
$config array [] Database configuration [DSN, username, password]
$options array [] Additional PDO connection options

setTablePrefix()

public function setTablePrefix(string $prefix): void

lines 115–118 (4)

Set table prefix

Parameter Type Default Description
$prefix string required none

Returns: void

getTablePrefix()

public function getTablePrefix(): string

lines 125–128 (4)

Get table prefix

Takes no parameters.

Returns: string — string

setDbConnection()

public function setDbConnection(array $config = [], array $options = []): void

lines 139–163 (25)

Establishes a database connection using PDO

Parameter Type Default Description
$config array [] Database configuration [DSN, username, password]
$options array [] Additional PDO connection options

Returns: void — void

Throws: \InvalidArgumentException, \RuntimeException

isConnected()

public function isConnected(): bool

lines 170–173 (4)

Checks if database connection is active

Takes no parameters.

Returns: bool — bool True if connected, false otherwise

closeDbConnection()

public function closeDbConnection(): void

lines 180–184 (5)

Closes the database connection

Takes no parameters.

Returns: void — void

ensureConnection()

private function ensureConnection(): void

lines 192–197 (6)

Ensures database connection is established before operations

Takes no parameters.

Returns: void — void

Throws: \RuntimeException

dbQuery()

public function dbQuery(string $sql, array $args = []): \PDOStatement

lines 207–214 (8)

Executes a database query and returns the statement

Parameter Type Default Description
$sql string required SQL query to execute
$args array [] Parameters for prepared statement

Returns: \PDOStatement — \PDOStatement Executed statement

Throws: \RuntimeException

dbSelect()

public function dbSelect(string $sql, array $parameters = [], int $fetchMode = \PDO::FETCH_OBJ, string $class = ''): array

lines 226–237 (12)

Executes a SELECT query and returns results

Parameter Type Default Description
$sql string required SQL SELECT query
$parameters array [] Query parameters
$fetchMode int \PDO::FETCH_OBJ PDO fetch mode (default: PDO::FETCH_OBJ)
$class string '''''' Class name for PDO::FETCH_CLASS mode

Returns: array — array Fetched results

Throws: \RuntimeException

prepareCached()

private function prepareCached(string $sql): \PDOStatement

lines 251–261 (11)

Prepare a SQL statement with table prefix applied, reusing already

prepared statements with identical SQL text for the lifetime of the connection (request-scoped). Bound parameters are passed via execute() on each call, which PDO supports repeatedly on the same statement.

The cache is bounded to STATEMENT_CACHE_MAX entries; once full it is reset so the request continues with fresh prepares.

Parameter Type Default Description
$sql string required Fully-prefixed SQL query

Returns: \PDOStatement — \PDOStatement

clearStatementCache()

public function clearStatementCache(): void

lines 271–274 (4)

Forget all cached prepared statements.

Exposed for tests and called automatically when the connection is re-established or closed.

Takes no parameters.

Returns: void — void

dbInsert()

public function dbInsert(string $tablename, array $params): bool

lines 285–308 (24)

Inserts a new record into the specified table

Parameter Type Default Description
$tablename string required Name of the table
$params array required Associative array of column ⇒ value pairs

Returns: bool — bool True on success, false on failure

Throws: \InvalidArgumentException, \RuntimeException

dbLastInsertId()

public function dbLastInsertId(): string

lines 316–320 (5)

Returns the last inserted ID

Takes no parameters.

Returns: string — string Last inserted row ID

Throws: \RuntimeException

dbUpdate()

public function dbUpdate(string $tablename, array $params, array $where): int

lines 332–352 (21)

Updates records in the specified table

Parameter Type Default Description
$tablename string required Name of the table
$params array required Associative array of column ⇒ value pairs to update
$where array required Associative array of conditions for WHERE clause

Returns: int — int Number of affected rows

Throws: \InvalidArgumentException, \RuntimeException

dbReplace()

public function dbReplace(string $tablename, array $params, array $updateParams): bool

lines 366–393 (28)

Performs an INSERT or UPDATE (upsert) operation

Inserts a new record or updates existing one if duplicate key exists

Parameter Type Default Description
$tablename string required Name of the table
$params array required Associative array of column ⇒ value pairs for insert
$updateParams array required Associative array of column ⇒ value pairs for update

Returns: bool — bool True on success, false on failure

Throws: \InvalidArgumentException, \RuntimeException

dbDelete()

public function dbDelete(string $tablename, array $where, ?int $limit = null): int

lines 405–428 (24)

Deletes records from the specified table

Parameter Type Default Description
$tablename string required Name of the table
$where array required Associative array of conditions for WHERE clause
$limit ?int null Optional maximum number of rows to delete

Returns: int — int Number of affected rows

Throws: \InvalidArgumentException, \RuntimeException

dbTransaction()

public function dbTransaction(): bool

lines 436–440 (5)

Begins a transaction

Takes no parameters.

Returns: bool — bool True on success, false on failure

Throws: \RuntimeException

dbCommit()

public function dbCommit(): bool

lines 448–452 (5)

Commits a transaction

Takes no parameters.

Returns: bool — bool True on success, false on failure

Throws: \RuntimeException

dbRollBack()

public function dbRollBack(): bool

lines 460–464 (5)

Rolls back a transaction

Takes no parameters.

Returns: bool — bool True on success, false on failure

Throws: \RuntimeException

prepare()

public function prepare(string $sql, array $driverOptions = [])

lines 477–482 (6)

Prepare a SQL statement with table prefix applied.

Delegates to PDO::prepare() after applying the configured table prefix. This enables legacy code (ApiAuth, API controllers) that calls $dbc→prepare() directly to work correctly with prefixed table names.

Parameter Type Default Description
$sql string required SQL query (may contain unprefixed tbl_ names)
$driverOptions array [] Optional PDO driver options

Returns: (none declared) — \PDOStatement|false

applyTablePrefix()

private function applyTablePrefix(string $sql): string

lines 490–518 (29)

Apply table prefix to SQL query

Parameter Type Default Description
$sql string required none

Returns: string — string


This page is generated from source by 'tools/gendoc'. Edits will be overwritten.

scriptlog/lib/core/db.1790414216.txt.gz · Last modified: by admin