Jelix 1.8.13

jDbConnection
in package

Tags
subpackage

db

Table of Contents

ATTR_AUTOCOMMIT  = 0
ATTR_CASE  = 8
ATTR_CLIENT_VERSION  = 5
ATTR_CONNECTION_STATUS  = 7
ATTR_CURSOR  = 10
ATTR_DRIVER_NAME  = 16
ATTR_ERRMODE  = 3
ATTR_ORACLE_NULLS  = 11
ATTR_PERSISTENT  = 12
ATTR_PREFETCH  = 1
ATTR_SERVER_INFO  = 6
ATTR_SERVER_VERSION  = 4
ATTR_TIMEOUT  = 2
CURSOR_FWDONLY  = 0
CURSOR_SCROLL  = 1
FETCH_CLASS  = 8
FETCH_INTO  = 9
FETCH_OBJ  = 5
$dbms  : string
The database type name (mysql, pgsql ...) It is not the driver name. Several drivers could connect to the same database type. This type name is often used to know whish SQL language we should use.
$driverName  : string
driver name.
$lastQuery  : mixed
last executed query.
$msgError  : string
The last error message if any.
$profile  : array<string|int, mixed>
profile properties used by the connector.
$_connection  : mixed
the internal connection.
$_debugMode  : mixed
$_schema  : jDbSchema
$foundParameters  : mixed
$numericalMarker  : mixed
$parameterMarker  : mixed
$_autocommit  : bool
Are we using an automatic commit ?
__construct()  : mixed
do a connection to the database, using properties of the given profile.
__destruct()  : mixed
beginTransaction()  : mixed
begin a transaction. Call it before query, limitQuery, exec And then commit() or rollback().
close()  : mixed
commit()  : mixed
validate all queries and close a transaction.
disconnect()  : mixed
alias of close().
encloseName()  : string
enclose the field name.
errorCode()  : int
errorInfo()  : string
exec()  : int
Launch a SQL Query (update, delete..) which doesn't return rows.
getAttribute()  : string
getProfileName()  : mixed
hasTablePrefix()  : bool
Check if the current connection has a table prefix set.
isClosed()  : bool
lastIdInTable()  : int
return the maximum value of the given primary key in a table.
lastInsertId()  : int
return the id value of the last inserted row.
limitQuery()  : bool|jDbResultSet
Launch a SQL Query with limit parameter, so it returns only a subset of a result.
prefixTable()  : string
Prefix the given table with the prefix specified in the connection's profile If there's no prefix for the connection's profile, return the table's name unchanged.
prepare()  : jDbResultSet
prepare a query. It may contain some named parameters declared as ':a_name' in the query.
query()  : bool|jDbResultSet
Launch a SQL Query which returns rows (typically, a SELECT statement).
quote()  : string
Escape and quotes strings.
quote2()  : string
Escape and quotes strings. if null, will only return the text "NULL".
rollback()  : mixed
cancel all queries of a transaction and close the transaction.
schema()  : jDbSchema
setAttribute()  : mixed
setAutoCommit()  : mixed
sets the autocommit state.
tools()  : jDbTools
unprefixTable()  : string
Remove the prefix of the given table name.
_autoCommitNotify()  : mixed
Notify the changes on autocommit Drivers may overload this.
_connect()  : int
return a connection identifier or false/null if there is an error.
_disconnect()  : mixed
do a disconnection (no need to do a test on the connection id).
_doExec()  : bool|jDbResultSet
do a query which return nothing.
_doLimitQuery()  : bool|jDbResultSet
do a query which return a limited number of results.
_doQuery()  : bool|jDbResultSet
do a query which return results.
_quote()  : string
do the escaping of a string.
_replaceParam()  : mixed
findParameters()  : array<string|int, mixed>
replace named parameters into the given query, by the given marker, for db API that don't support named parameters for prepared queries.

Constants

Properties

$dbms

The database type name (mysql, pgsql ...) It is not the driver name. Several drivers could connect to the same database type. This type name is often used to know whish SQL language we should use.

public string $dbms
Tags

$profile

profile properties used by the connector.

public array<string|int, mixed> $profile
Tags

$_autocommit

Are we using an automatic commit ?

private bool $_autocommit = \true
Tags

Methods

__construct()

do a connection to the database, using properties of the given profile.

public __construct(array<string|int, mixed> $profile) : mixed
Parameters
$profile : array<string|int, mixed>

profile properties. Its content must be normalized by jDbParameters

Tags
Return values
mixed

beginTransaction()

begin a transaction. Call it before query, limitQuery, exec And then commit() or rollback().

public abstract beginTransaction() : mixed
Tags
Return values
mixed

commit()

validate all queries and close a transaction.

public abstract commit() : mixed
Tags
Return values
mixed

disconnect()

alias of close().

public disconnect() : mixed
Tags
Return values
mixed

encloseName()

enclose the field name.

public encloseName(string $fieldName) : string
Parameters
$fieldName : string

the field name

Tags
since
1.1.1
Return values
string

the enclosed field name

errorCode()

public abstract errorCode() : int
Tags
Return values
int

the last error code

errorInfo()

public abstract errorInfo() : string
Tags
Return values
string

the last error description

exec()

Launch a SQL Query (update, delete..) which doesn't return rows.

public exec(string $query) : int
Parameters
$query : string

the SQL query

Tags
Return values
int

the number of affected rows. False if the query has failed.

getAttribute()

public abstract getAttribute(int $id) : string
Parameters
$id : int

the attribut id

Tags
see
PDO::getAttribute()
Return values
string

the attribute value

hasTablePrefix()

Check if the current connection has a table prefix set.

public hasTablePrefix() : bool
Tags
author

Julien Issler

since
1.0
Return values
bool

lastIdInTable()

return the maximum value of the given primary key in a table.

public lastIdInTable(string $fieldName, string $tableName) : int
Parameters
$fieldName : string

the name of the primary key

$tableName : string

the name of the table

Tags
Return values
int

the maximum value

lastInsertId()

return the id value of the last inserted row.

public abstract lastInsertId([string $fromSequence = '' ]) : int

Some driver need a sequence name, so give it at first parameter.

Parameters
$fromSequence : string = ''

the sequence name

Tags
Return values
int

the id value

limitQuery()

Launch a SQL Query with limit parameter, so it returns only a subset of a result.

public limitQuery(string $queryString, int $limitOffset, int $limitCount) : bool|jDbResultSet
Parameters
$queryString : string

the SQL query

$limitOffset : int

the offset of the first row to return

$limitCount : int

the maximum of number of rows to return

Tags
Return values
bool|jDbResultSet

SQL Select. False if the query has failed.

prefixTable()

Prefix the given table with the prefix specified in the connection's profile If there's no prefix for the connection's profile, return the table's name unchanged.

public prefixTable(mixed $table_name) : string
Parameters
$table_name : mixed
Tags
author

Julien Issler

since
1.0
Return values
string

the prefixed table's name

prepare()

prepare a query. It may contain some named parameters declared as ':a_name' in the query.

public abstract prepare(string $query) : jDbResultSet
Parameters
$query : string

a sql query with parameters

Tags
Return values
jDbResultSet

a statement with which you can bind values or variables to named parameters, and execute the statement

query()

Launch a SQL Query which returns rows (typically, a SELECT statement).

public query(string $queryString[, int $fetchmode = self::FETCH_OBJ ][, null|mixed $arg1 = null ][, array<string|int, mixed> $ctoargs = null ]) : bool|jDbResultSet
Parameters
$queryString : string

the SQL query

$fetchmode : int = self::FETCH_OBJ

FETCH_OBJ, FETCH_CLASS or FETCH_INTO

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

arguments for the constructor if FETCH_CLASS

Tags
Return values
bool|jDbResultSet

false if the query has failed

quote()

Escape and quotes strings.

public quote(string $text, int $parameter_type) : string
Parameters
$text : string

string to quote

$parameter_type : int

unused, just for compatibility with PDO

Tags
Return values
string

escaped string

quote2()

Escape and quotes strings. if null, will only return the text "NULL".

public quote2(string $text[, bool $checknull = true ][, bool $binary = false ]) : string
Parameters
$text : string

string to quote

$checknull : bool = true

if true, check if $text is a null value, and then return NULL

$binary : bool = false

set to true if $text contains a binary string

Tags
since
1.2
Return values
string

escaped string

rollback()

cancel all queries of a transaction and close the transaction.

public abstract rollback() : mixed
Tags
Return values
mixed

setAttribute()

public abstract setAttribute(int $id, string $value) : mixed
Parameters
$id : int

the attribut id

$value : string

the attribute value

Tags
see
PDO::setAttribute()
Return values
mixed

setAutoCommit()

sets the autocommit state.

public setAutoCommit([bool $state = true ]) : mixed
Parameters
$state : bool = true

the status of autocommit

Tags
Return values
mixed

unprefixTable()

Remove the prefix of the given table name.

public unprefixTable(string $tableName) : string
Parameters
$tableName : string
Tags
since
1.6.16
Return values
string

the table name unprefixed

_autoCommitNotify()

Notify the changes on autocommit Drivers may overload this.

protected abstract _autoCommitNotify(bool $state) : mixed
Parameters
$state : bool

the new state of autocommit

Tags
Return values
mixed

_connect()

return a connection identifier or false/null if there is an error.

protected abstract _connect() : int
Tags
Return values
int

connection identifier

_disconnect()

do a disconnection (no need to do a test on the connection id).

protected abstract _disconnect() : mixed
Tags
Return values
mixed

_doLimitQuery()

do a query which return a limited number of results.

protected abstract _doLimitQuery(mixed $queryString, mixed $offset, mixed $number) : bool|jDbResultSet
Parameters
$queryString : mixed
$offset : mixed
$number : mixed
Tags
Return values
bool|jDbResultSet

_quote()

do the escaping of a string.

protected _quote(string $text, bool $binary) : string

you should override it into the driver.

Parameters
$text : string

the text to escape

$binary : bool

true if the content of the string is a binary content

Tags
Return values
string

the escaped string

_replaceParam()

protected _replaceParam(mixed $matches) : mixed
Parameters
$matches : mixed
Tags
Return values
mixed

findParameters()

replace named parameters into the given query, by the given marker, for db API that don't support named parameters for prepared queries.

protected findParameters(string $sql, string $marker) : array<string|int, mixed>
Parameters
$sql : string
$marker : string

a string which will replace each named parameter in the query. it may end by a '%' so named parameters are replaced by numerical parameter. ex : '$%' : named parameters will be replaced by $1, $2, $3...

Tags
Return values
array<string|int, mixed>

0:the new sql, 1: list of parameters names, in the order they appear into the query

Search results