Jelix 1.6.40

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
$_tools  : jDbTools
$_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()
commit()  : mixed
validate all queries and close a transaction
disconnect()  : mixed
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
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()  : jDbResultSet|bool
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()  : statement
prepare a query
query()  : jDbResultSet|bool
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()  : jDbResultSet|bool
do a query which return nothing
_doLimitQuery()  : jDbResultSet|bool
do a query which return a limited number of results
_doQuery()  : jDbResultSet|bool
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

$profile

profile properties used by the connector

public array<string|int, mixed> $profile

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

Return values
mixed

beginTransaction()

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

public abstract beginTransaction() : mixed
Return values
mixed

commit()

validate all queries and close a transaction

public abstract commit() : mixed
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
Return values
int

the last error code

errorInfo()

public abstract errorInfo() : string
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

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

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

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) : jDbResultSet|bool
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

Return values
jDbResultSet|bool

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

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

a sql query with parameters

Return values
statement

a statement

query()

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

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

the SQL query

$fetchmode : int = self::FETCH_OBJ

FETCH_OBJ, FETCH_CLASS or FETCH_INTO

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

arguments for the constructor if FETCH_CLASS

Return values
jDbResultSet|bool

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

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
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

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

Return values
mixed

_connect()

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

protected abstract _connect() : int
Return values
int

connection identifier

_disconnect()

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

protected abstract _disconnect() : mixed
Return values
mixed

_doLimitQuery()

do a query which return a limited number of results

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

_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

Return values
string

the escaped string

_replaceParam()

protected _replaceParam(mixed $matches) : mixed
Parameters
$matches : mixed
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...

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