Jelix 1.7.16

pgsqlDbConnection extends jDbConnection
in package

Tags
subpackage

db_driver

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.
$_charsets  : mixed
$_connection  : mixed
the internal connection.
$_debugMode  : mixed
$_schema  : jDbSchema
$foundParameters  : mixed
$numericalMarker  : mixed
$parameterMarker  : mixed
$serverVersion  : 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
getSearchPath()  : mixed
getServerMajorVersion()  : 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()  : 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

$profile

profile properties used by the connector.

public array<string|int, mixed> $profile

$_charsets

protected mixed $_charsets = array('UTF-8' => 'UNICODE', 'ISO-8859-1' => 'LATIN1')

Methods

__construct()

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

public __construct(mixed $profile) : mixed
Parameters
$profile : mixed

profile properties. Its content must be normalized by jDbParameters

Return values
mixed

beginTransaction()

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

public beginTransaction() : mixed
Return values
mixed

commit()

validate all queries and close a transaction.

public 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

errorInfo()

public 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 getAttribute(int $id) : string
Parameters
$id : int

the attribute id

Tags
see
PDO::getAttribute()
Return values
string

the attribute value

getServerMajorVersion()

public getServerMajorVersion() : mixed
Return values
mixed

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 lastInsertId([mixed $seqname = '' ]) : int

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

Parameters
$seqname : mixed = ''
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

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 prepare(mixed $query) : jDbResultSet
Parameters
$query : mixed

a sql query with parameters

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

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

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 rollback() : mixed
Return values
mixed

setAttribute()

public 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 _autoCommitNotify(mixed $state) : mixed
Parameters
$state : mixed

the new state of autocommit

Return values
mixed

_connect()

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

protected _connect() : int
Return values
int

connection identifier

_disconnect()

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

protected _disconnect() : mixed
Return values
mixed

_doLimitQuery()

do a query which return a limited number of results.

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

_quote()

do the escaping of a string.

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

you should override it into the driver.

Parameters
$text : mixed

the text to escape

$binary : mixed

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