Database Drivers
Database drivers Interface, provides methods for executing database queries, statement preparation, and result fetching. To get started, see Database Example.
- Class namespace:
\Luminova\Interface\DriversInterface
constructor
Initialize database driver with your database connection configurations.
\Luminova\Database\Drivers\MySqliDriver - Mysqli connection driver.
new MySqliDriver(\Luminova\Base\BaseDatabase $config): mixed\Luminova\Database\Drivers\PdoDriver - PDO connection driver.
new PdoDriver(\Luminova\Base\BaseDatabase $config): mixedParameters:
| Parameter | Type | Description |
|---|---|---|
$config | \Luminova\Base\BaseDatabase | Database configuration. |
Throws:
- \Luminova\Exceptions\DatabaseException - If the database connection fails.
Methods
isConnected
Checks if the database is connected.
public isConnected(): boolReturn Value:
bool - True if connected, false otherwise.
getDriver
Get database connection driver name in use (e.g sqlite, mysql, cubrid etc..).
public getDriver(): ?stringReturn Value:
string|null - Return driver name if connection is open, otherwise null.
raw
Get the actual database connection object of PDO or mysqli database.
public raw(): \Luminova\Interface\ConnInterface|nullReturn Value:
\Luminova\Interface\ConnInterface|null - Connection instance if connected, null otherwise.
statement
Get prepared statement of a query result.
public statement(): PDOStatement|mysqli_stmt|mysqli_result|bool|nullReturn Value:
PDOStatement|mysqli_stmt|mysqli_result|bool|null - Statement instance.
setDebug
Sets the debug mode.
public setDebug(bool $debug): selfReturn Value:
self - The current instance.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$debug | bool | The debug mode. |
error
Returns the error information for the last statement execution.
public error(): stringReturn Value:
string - The error information.
errors
Returns all error information.
public errors(): arrayReturn Value:
array - The error information.
dumpDebug
Debug dumps statement information for the last statement execution.
public dumpDebug(): bool|nullReturn Value:
bool|null - True on success, false on failure, or null if debug mode is disabled.
info
Returns information about the last statement execution.
public info(): arrayReturn Value:
array - The statement execution information.
prepare
Prepares a statement for execution.
public prepare(string $query): selfReturn Value:
self - The current instance.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$query | string | The SQL query. |
query
Executes an sql query string.
public query(string $query): selfReturn Value:
self - The current instance.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$query | string | The SQL query. |
exec
Execute an SQL statement and return the number of affected rows.
public exec(string $query): intReturn Value:
int - The number of affected rows.
Parameters:
| Parameter | Type | Description |
|---|---|---|
$query | string | The SQL statement to execute. |
beginTransaction
Begins a transaction with optional read-only isolation level and SAVEPOINT for PDO.
public beginTransaction(int $flags = 0, ?string $name = null): boolParameters:
| Parameter | Type | Description |
|---|---|---|
$flags | int | Optional flags to set transaction properties. (Default: 0).No predefined flags for PDO, specify 4 to create read-only isolation. |
$name | string|null | Optional name. If provided in PDO, SAVEPOINT will be created with name instead. |
Return Value:
bool - Return true if transaction started successfully, otherwise false.
Throws:
- \Luminova\Exceptions\DatabaseException - Throws exception on
PDOif failure to set transaction isolation level or createsavepoint.
Note:
If
$flagsis set to4inPDO, which is equivalent toMYSQLI_TRANS_START_READ_ONLY, a read-only isolation level will be established. If the transaction starts successfully, it will return true.If
$nameis specified inPDO, aSAVEPOINTwill be created. If the savepoint creation is successful, the transaction will return true.
commit
Commits a transaction.
public commit(int $flags = 0, ?string $name = null): boolParameters:
| Parameter | Type | Description |
|---|---|---|
$flags | int | Optional flags to set transaction properties. (Default: 0).Only supported in MySQLi. |
$name | string|null | Optional name. Only supported in MySQLi. |
Return Value:
bool - Returns true if the transaction was successfully committed, otherwise false.
rollback
Rolls back the current transaction or to a specific name while in PDO uses SAVEPOINT.
public rollback(int $flags = 0, ?string $name = null): boolParameters:
| Parameter | Type | Description |
|---|---|---|
$flags | int | Optional flags to set transaction properties. (Default: 0).Only supported in MySQLi. |
$name | string|null | Optional name. If provided in PDO, rolls back to the SAVEPOINT named |
Return Value:
bool - Return true if rolled back was successful, otherwise false.
Throws:
- \Luminova\Exceptions\DatabaseException - Throws exception on
PDOif failure to createSAVEPOINT.
inTransaction
Determine if there is any active transaction.
public inTransaction(): boolReturn Value:
bool - Return true if any active transaction, otherwise false.
getType
Returns the appropriate parameter type based on the value.
public static getType(mixed $value): string|int|nullParameters:
| Parameter | Type | Description |
|---|---|---|
$value | mixed | The parameter value. |
Return Value:
string|int|null - The parameter type.
bind
Binds a value to a parameter.
public bind(string $param, mixed $value, int|null $type = null): selfParameters:
| Parameter | Type | Description |
|---|---|---|
$param | string | The parameter identifier. |
$value | mixed | The parameter value. |
$type | int|null | The parameter type. |
Return Value:
self - The current instance.
param
Binds a variable to a parameter.
public param(string $param, mixed &$value, int|null $type = null): selfParameters:
| Parameter | Type | Description |
|---|---|---|
$param | string | The parameter identifier. |
&$value | mixed | The parameter value passed by reference. |
$type | int|null | The parameter type. |
Return Value:
self - The current instance.
execute
Executes the prepared statement.
public execute(array|null $params = null): boolParameters:
| Parameter | Type | Description |
|---|---|---|
$params | array|null | An optional list array to bound parameters while executing statement. Each value is treated as a string. |
Return Value:
bool - True on success, false on failure.
Throws:
- \Luminova\Exceptions\DatabaseException - Query statment encounter error.
ok
Check if query execution is completed successfully.
public function ok(): bool;Return Value:
bool - True on success, false on failure.
rowCount
Returns the number of rows affected by the last statement execution.
public rowCount(): int|boolReturn Value:
int|bool - The number of rows, otherwise return false on failure.
getNext
Fetches a next single row as an object or array.
public getNext(string $type = 'object'): array|object|boolParameters:
| Parameter | Type | Description |
|---|---|---|
$type | string | The type of result to return ('object' or 'array'). |
Return Value:
array|object|bool - The result object based on mode, otherwise return false on failure.
getAll
Fetches all rows as an array or objects.
public getAll(string $type = 'object'): array|object|boolParameters:
| Parameter | Type | Description |
|---|---|---|
$type | string | The type of result to return ('object' or 'array'). |
Return Value:
array|object|bool - The result object based on mode, otherwise return false on failure.
getInt
Fetches selected rows as a 2D array of integers.
public getInt(): array|boolReturn Value:
array|bool - 2D array of integers else return false on failure.
getCount
Fetches total count of selected rows as integer.
public getCount(): int|boolReturn Value:
int|bool - Return integers else return false on failure.
getColumns
Get columns
public getColumns(int $mode = FETCH_COLUMN): arrayParameters:
| Parameter | Type | Description |
|---|---|---|
$mode | int | Fetch column mode [FETCH_COLUMN or FETCH_COLUMN_ASSOC] |
Return Value:
array - Return and associative array or indexed array of columns depending on mode.
fetch
Fetch result with a specific type and mode
public fetch(string $type = 'all', int $mode = FETCH_OBJ): mixedParameters:
| Parameter | Type | Description |
|---|---|---|
$type | string | The type of fetch method ('all' or 'next'). |
$mode | int | Controls the contents of the returned |
Return Value:
mixed - Return selected row item false on failure.
fetchObject
Fetches the result set as an object of the specified class or stdClass.
public fetchObject(string|null $class = 'stdClass', array $arguments = []): object|falseParameters:
| Parameter | Type | Description |
|---|---|---|
$class | string|null | The name of the class to instantiate, defaults to stdClass. |
$arguments | array | Additional arguments to pass to the class constructor. |
Return Value:
object|false - Returns the fetched object or false if no more rows are available or an error occurs.
getStatment
Get prepared statement depending on database connection specified in .env file.
public getStatment(): PDOStatement|mysqli_stmt|mysqli_result|bool|nullReturn Value:
object|false - Returns prepared statement else false or null if not statement.
getLastInsertId
Returns the ID of the last inserted record or sequence value.
public getLastInsertId(): stringReturn Value:
string - The last insert ID.
getItem
More fancy way to return record from statement (context: all, next, 2dint, total, lastId, count or column).
public getItem(int $mode = RETURN_ALL string $return = 'object'): mixedParameters:
| Parameter | Type | Description |
|---|---|---|
$mode | int | Return mode RETURN_* See database return modes . |
$return | string | [The return data type (array or object)]. |
Return Value:
mixed - Return selected rows or false on failure.
free
Frees up the statement cursor and sets the statement object to null.
public free(): voidclose
Frees up the statement cursor and close database connection.
public close(): void