dolibarr  21.0.0-alpha
Public Member Functions | Public Attributes | Static Protected Member Functions | List of all members
DoliDBMysqli Class Reference

Class to manage Dolibarr database access for a MySQL database using the MySQLi extension. More...

Inheritance diagram for DoliDBMysqli:
Inheritance graph
[legend]
Collaboration diagram for DoliDBMysqli:
Collaboration graph
[legend]

Public Member Functions

 __construct ($type, $host, $user, $pass, $name='', $port=0)
 Constructor. More...
 
 hintindex ($nameofindex)
 Return SQL string to force an index. More...
 
 convertSQLFromMysql ($line, $type='ddl')
 Convert a SQL request in Mysql syntax to native syntax. More...
 
 select_db ($database)
 Select a database. More...
 
 connect ($host, $login, $passwd, $name, $port=0)
 Connect to server. More...
 
 getVersion ()
 Return version of database server. More...
 
 getDriverInfo ()
 Return version of database client driver. More...
 
 close ()
 Close database connection. More...
 
 query ($query, $usesavepoint=0, $type='auto', $result_mode=0)
 Execute a SQL request and return the resultset. More...
 
 fetch_object ($resultset)
 Returns the current line (as an object) for the resultset cursor. More...
 
 fetch_array ($resultset)
 Return datas as an array. More...
 
 fetch_row ($resultset)
 Return datas as an array. More...
 
 num_rows ($resultset)
 Return number of lines for result of a SELECT. More...
 
 affected_rows ($resultset)
 Return the number of lines in the result of a request INSERT, DELETE or UPDATE. More...
 
 free ($resultset=null)
 Libere le dernier resultset utilise sur cette connection. More...
 
 escape ($stringtoencode)
 Escape a string to insert data. More...
 
 escapeforlike ($stringtoencode)
 Escape a string to insert data into a like. More...
 
 errno ()
 Return generic error code of last operation. More...
 
 error ()
 Return description of last error. More...
 
 last_insert_id ($tab, $fieldid='rowid')
 Get last ID after an insert INSERT. More...
 
 encrypt ($fieldorvalue, $withQuotes=1)
 Encrypt sensitive data in database Warning: This function includes the escape and add the SQL simple quotes on strings. More...
 
 decrypt ($value)
 Decrypt sensitive data in database. More...
 
 DDLGetConnectId ()
 Return connection ID. More...
 
 DDLCreateDb ($database, $charset='', $collation='', $owner='')
 Create a new database Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated We force to create database with charset this->forcecharset and collate this->forcecollate. More...
 
 DDLListTables ($database, $table='')
 List tables into a database. More...
 
 DDLListTablesFull ($database, $table='')
 List tables into a database. More...
 
 DDLInfoTable ($table)
 List information of columns into a table. More...
 
 DDLCreateTable ($table, $fields, $primary_key, $type, $unique_keys=null, $fulltext_keys=null, $keys=null)
 Create a table into database. More...
 
 DDLDropTable ($table)
 Drop a table into database. More...
 
 DDLDescTable ($table, $field="")
 Return a pointer of line with description of a table or field. More...
 
 DDLAddField ($table, $field_name, $field_desc, $field_position="")
 Create a new field into table. More...
 
 DDLUpdateField ($table, $field_name, $field_desc)
 Update format of a field into a table. More...
 
 DDLDropField ($table, $field_name)
 Drop a field from table. More...
 
 DDLCreateUser ($dolibarr_main_db_host, $dolibarr_main_db_user, $dolibarr_main_db_pass, $dolibarr_main_db_name)
 Create a user and privileges to connect to database (even if database does not exists yet) More...
 
 getDefaultCharacterSetDatabase ()
 Return charset used to store data in current database Note: if we are connected to databasename, it is same result than using SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "databasename";) More...
 
 getListOfCharacterSet ()
 Return list of available charset that can be used to store data in database. More...
 
 getDefaultCollationDatabase ()
 Return collation used in current database. More...
 
 getListOfCollation ()
 Return list of available collation that can be used for database. More...
 
 getPathOfDump ()
 Return full path of dump program. More...
 
 getPathOfRestore ()
 Return full path of restore program. More...
 
 getServerParametersValues ($filter='')
 Return value of server parameters. More...
 
 getServerStatusValues ($filter='')
 Return value of server status (current indicators on memory, cache...) More...
 
- Public Member Functions inherited from DoliDB
 prefix ()
 Return the DB prefix found into prefix_db (if it was set manually by doing $dbhandler->prefix_db=...). More...
 
 ifsql ($test, $resok, $resko)
 Format a SQL IF. More...
 
 stddevpop ($nameoffield)
 Return SQL string to aggregate using the Standard Deviation of population. More...
 
 regexpsql ($subject, $pattern, $sqlstring=0)
 Format a SQL REGEXP. More...
 
 idate ($param, $gm='tzserver')
 Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field. More...
 
 lasterrno ()
 Return last error code. More...
 
 sanitize ($stringtosanitize, $allowsimplequote=0, $allowsequals=0, $allowsspace=0, $allowschars=1)
 Sanitize a string for SQL forging. More...
 
 begin ($textinlog='')
 Start transaction. More...
 
 commit ($log='')
 Validate a database transaction. More...
 
 rollback ($log='')
 Cancel a transaction and go back to initial data values. More...
 
 plimit ($limit=0, $offset=0)
 Define limits and offset of request. More...
 
 getVersionArray ()
 Return version of database server into an array. More...
 
 lastquery ()
 Return last request executed with query() More...
 
 order ($sortfield='', $sortorder='')
 Define sort criteria of request. More...
 
 lasterror ()
 Return last error label. More...
 
 jdate ($string, $gm='tzserver')
 Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true) 19700101020000 -> 3600 with server TZ = +1 and $gm='tzserver' 19700101020000 -> 7200 whaterver is server TZ if $gm='gmt'. More...
 
 lastqueryerror ()
 Return last query in error. More...
 
 getRow ($sql)
 Return first result from query as object Note : This method executes a given SQL query and retrieves the first row of results as an object. More...
 
 getRows ($sql)
 Return all results from query as an array of objects. More...
 
- Public Member Functions inherited from Database
 idate ($param)
 Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field. More...
 
 sanitize ($stringtosanitize)
 Sanitize a string for SQL forging. More...
 

Public Attributes

 $type = 'mysqli'
 Database type.
 
const LABEL = 'MySQL or MariaDB'
 Database label.
 
const VERSIONMIN = '5.0.3'
 Version min database.
 
- Public Attributes inherited from DoliDB
const VERSIONMIN = self::VERSIONMIN
 Force subclass to implement VERSIONMIN - required DB version.
 
const LABEL = self::LABEL
 Force subclass to implement LABEL - description of DB type.
 

Static Protected Member Functions

static getCallerInfoString ()
 Get caller info. More...
 

Detailed Description

Class to manage Dolibarr database access for a MySQL database using the MySQLi extension.

Definition at line 34 of file mysqli.class.php.

Constructor & Destructor Documentation

◆ __construct()

DoliDBMysqli::__construct (   $type,
  $host,
  $user,
  $pass,
  $name = '',
  $port = 0 
)

Constructor.

This create an opened connection to a database server and eventually to a database

Parameters
string$typeType of database (mysql, pgsql...). Not used.
string$hostAddress of database server
string$userName of database user
string$passPassword of database user
string$nameName of database
int$portPort of database server

Definition at line 60 of file mysqli.class.php.

Member Function Documentation

◆ affected_rows()

DoliDBMysqli::affected_rows (   $resultset)

Return the number of lines in the result of a request INSERT, DELETE or UPDATE.

Parameters
mysqli_result$resultsetCurseur de la requete voulue
Returns
int Number of lines
See also
num_rows()

Implements Database.

Definition at line 472 of file mysqli.class.php.

◆ close()

DoliDBMysqli::close ( )

Close database connection.

Returns
bool True if disconnect successful, false otherwise
See also
connect()

Implements Database.

Definition at line 297 of file mysqli.class.php.

References dol_syslog().

◆ connect()

DoliDBMysqli::connect (   $host,
  $login,
  $passwd,
  $name,
  $port = 0 
)

Connect to server.

Parameters
string$hostDatabase server host
string$loginLogin
string$passwdPassword
string$nameName of database (not used for mysql, used for pgsql)
integer$portPort of database server
Returns
mysqli|mysqliDoli|false Database access object
See also
close()

Implements Database.

Definition at line 248 of file mysqli.class.php.

◆ convertSQLFromMysql()

DoliDBMysqli::convertSQLFromMysql (   $line,
  $type = 'ddl' 
)

Convert a SQL request in Mysql syntax to native syntax.

Parameters
string$lineSQL request line to convert
string$typeType of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
Returns
string SQL request line converted

Implements Database.

Definition at line 210 of file mysqli.class.php.

◆ DDLAddField()

DoliDBMysqli::DDLAddField (   $table,
  $field_name,
  $field_desc,
  $field_position = "" 
)

Create a new field into table.

Parameters
string$tableName of table
string$field_nameName of field to add
array{type:string,label:string,enabled:int<0,2>|string,position:int,notnull?:int,visible:int,noteditable?:int,default?:string,index?:int,foreignkey?:string,searchall?:int,isameasure?:int,css?:string,csslist?:string,help?:string,showoncombobox?:int,disabled?:int,arrayofkeyval?:array<int,string>,comment?:string}$field_desc Associative table with description of field to insert [parameter name][parameter value]
string$field_positionOptional e.g.: "after some_field"
Returns
int Return integer <0 if KO, >0 if OK

Implements Database.

Definition at line 959 of file mysqli.class.php.

◆ DDLCreateDb()

DoliDBMysqli::DDLCreateDb (   $database,
  $charset = '',
  $collation = '',
  $owner = '' 
)

Create a new database Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated We force to create database with charset this->forcecharset and collate this->forcecollate.

Parameters
string$databaseDatabase name to create
string$charsetCharset used to store data
string$collationCharset used to sort data
string$ownerUsername of database owner
Returns
null|mysqli_result Resource defined if OK, null if KO

Implements Database.

Definition at line 697 of file mysqli.class.php.

◆ DDLCreateTable()

DoliDBMysqli::DDLCreateTable (   $table,
  $fields,
  $primary_key,
  $type,
  $unique_keys = null,
  $fulltext_keys = null,
  $keys = null 
)

Create a table into database.

Parameters
string$tableName of table
array<string,array{type:string,label:string,enabled:int<0,2>|string,position:int,notnull?:int,visible:int,noteditable?:int,default?:string,index?:int,foreignkey?:string,searchall?:int,isameasure?:int,css?:string,csslist?:string,help?:string,showoncombobox?:int,disabled?:int,arrayofkeyval?:array<int,string>,comment?:string}>$fields Tableau associatif [nom champ][tableau des descriptions]
string$primary_keyNom du champ qui sera la clef primaire
string$typeType de la table
array$unique_keysTableau associatifs Nom de champs qui seront clef unique => valeur
array$fulltext_keysTableau des Nom de champs qui seront indexes en fulltext
array$keysTableau des champs cles noms => valeur
Returns
int Return integer <0 if KO, >=0 if OK

Implements Database.

Definition at line 826 of file mysqli.class.php.

◆ DDLCreateUser()

DoliDBMysqli::DDLCreateUser (   $dolibarr_main_db_host,
  $dolibarr_main_db_user,
  $dolibarr_main_db_pass,
  $dolibarr_main_db_name 
)

Create a user and privileges to connect to database (even if database does not exists yet)

Parameters
string$dolibarr_main_db_hostIp server or ''
string$dolibarr_main_db_userNom new user
string$dolibarr_main_db_passPassword for the new user
string$dolibarr_main_db_nameDatabase name where user must be granted
Returns
int Return integer <0 if KO, >=0 if OK

Implements Database.

Definition at line 1076 of file mysqli.class.php.

◆ DDLDescTable()

DoliDBMysqli::DDLDescTable (   $table,
  $field = "" 
)

Return a pointer of line with description of a table or field.

Parameters
string$tableName of table
string$fieldOptionnel : Name of field if we want description of field
Returns
bool|mysqli_result Resultset x (x->Field, x->Type, ...)

Implements Database.

Definition at line 939 of file mysqli.class.php.

◆ DDLDropField()

DoliDBMysqli::DDLDropField (   $table,
  $field_name 
)

Drop a field from table.

Parameters
string$tableName of table
string$field_nameName of field to drop
Returns
int Return integer <0 if KO, >0 if OK

Implements Database.

Definition at line 1052 of file mysqli.class.php.

◆ DDLDropTable()

DoliDBMysqli::DDLDropTable (   $table)

Drop a table into database.

Parameters
string$tableName of table
Returns
int Return integer <0 if KO, >=0 if OK

Implements Database.

Definition at line 917 of file mysqli.class.php.

◆ DDLGetConnectId()

DoliDBMysqli::DDLGetConnectId ( )

Return connection ID.

Returns
string Id connection

Implements Database.

Definition at line 673 of file mysqli.class.php.

◆ DDLInfoTable()

DoliDBMysqli::DDLInfoTable (   $table)

List information of columns into a table.

Parameters
string$tableName of table
Returns
array Tableau des information des champs de la table

Implements Database.

Definition at line 794 of file mysqli.class.php.

◆ DDLListTables()

DoliDBMysqli::DDLListTables (   $database,
  $table = '' 
)

List tables into a database.

Parameters
string$databaseName of database
string$tableName of table filter ('xxx')
Returns
array List of tables in an array

Implements Database.

Definition at line 731 of file mysqli.class.php.

◆ DDLListTablesFull()

DoliDBMysqli::DDLListTablesFull (   $database,
  $table = '' 
)

List tables into a database.

Parameters
string$databaseName of database
string$tableName of table filter ('xxx')
Returns
array List of tables in an array

Implements Database.

Definition at line 763 of file mysqli.class.php.

◆ DDLUpdateField()

DoliDBMysqli::DDLUpdateField (   $table,
  $field_name,
  $field_desc 
)

Update format of a field into a table.

Parameters
string$tableName of table
string$field_nameName of field to modify
array{type:string,label:string,enabled:int<0,2>|string,position:int,notnull?:int,visible:int,noteditable?:int,default?:string,index?:int,foreignkey?:string,searchall?:int,isameasure?:int,css?:string,csslist?:string,help?:string,showoncombobox?:int,disabled?:int,arrayofkeyval?:array<int,string>,comment?:string}$field_desc Array with description of field format
Returns
int Return integer <0 if KO, >0 if OK

Implements Database.

Definition at line 1007 of file mysqli.class.php.

◆ decrypt()

DoliDBMysqli::decrypt (   $value)

Decrypt sensitive data in database.

Parameters
string$valueValue to decrypt
Returns
string Decrypted value if used

Implements Database.

Definition at line 643 of file mysqli.class.php.

◆ encrypt()

DoliDBMysqli::encrypt (   $fieldorvalue,
  $withQuotes = 1 
)

Encrypt sensitive data in database Warning: This function includes the escape and add the SQL simple quotes on strings.

Parameters
string$fieldorvalueField name or value to encrypt
int$withQuotesReturn string including the SQL simple quotes. This param must always be 1 (Value 0 is bugged and deprecated).
Returns
string XXX(field) or XXX('value') or field or 'value'

Implements Database.

Definition at line 614 of file mysqli.class.php.

◆ errno()

DoliDBMysqli::errno ( )

Return generic error code of last operation.

Returns
string Error code (Examples: DB_ERROR_TABLE_ALREADY_EXISTS, DB_ERROR_RECORD_ALREADY_EXISTS...)

Implements Database.

Definition at line 530 of file mysqli.class.php.

◆ error()

DoliDBMysqli::error ( )

Return description of last error.

Returns
string Error text

Implements Database.

Definition at line 582 of file mysqli.class.php.

◆ escape()

DoliDBMysqli::escape (   $stringtoencode)

Escape a string to insert data.

Parameters
string$stringtoencodeString to escape
Returns
string String escaped

Implements Database.

Definition at line 508 of file mysqli.class.php.

◆ escapeforlike()

DoliDBMysqli::escapeforlike (   $stringtoencode)

Escape a string to insert data into a like.

Parameters
string$stringtoencodeString to escape
Returns
string String escaped

Implements Database.

Definition at line 519 of file mysqli.class.php.

◆ fetch_array()

DoliDBMysqli::fetch_array (   $resultset)

Return datas as an array.

Parameters
mysqli_result$resultsetResultset of request
Returns
array|null Array or null if KO or end of cursor

Implements Database.

Definition at line 414 of file mysqli.class.php.

◆ fetch_object()

DoliDBMysqli::fetch_object (   $resultset)

Returns the current line (as an object) for the resultset cursor.

Parameters
mysqli_result$resultsetCurseur de la requete voulue
Returns
object|null Object result line or null if KO or end of cursor

Implements Database.

Definition at line 396 of file mysqli.class.php.

◆ fetch_row()

DoliDBMysqli::fetch_row (   $resultset)

Return datas as an array.

Parameters
mysqli_result$resultsetResultset of request
Returns
array|null|int Array or null if KO or end of cursor or 0 if resultset is bool

Implements Database.

Definition at line 431 of file mysqli.class.php.

◆ free()

DoliDBMysqli::free (   $resultset = null)

Libere le dernier resultset utilise sur cette connection.

Parameters
mysqli_result$resultsetCurseur de la requete voulue
Returns
void

Implements Database.

Definition at line 490 of file mysqli.class.php.

◆ getCallerInfoString()

static DoliDBMysqli::getCallerInfoString ( )
staticfinalprotected

Get caller info.

Returns
string

Definition at line 376 of file mysqli.class.php.

◆ getDefaultCharacterSetDatabase()

DoliDBMysqli::getDefaultCharacterSetDatabase ( )

Return charset used to store data in current database Note: if we are connected to databasename, it is same result than using SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "databasename";)

Returns
string Charset
See also
getDefaultCollationDatabase()

Implements Database.

Definition at line 1121 of file mysqli.class.php.

◆ getDefaultCollationDatabase()

DoliDBMysqli::getDefaultCollationDatabase ( )

Return collation used in current database.

Returns
string Collation value
See also
getDefaultCharacterSetDatabase()

Implements Database.

Definition at line 1164 of file mysqli.class.php.

◆ getDriverInfo()

DoliDBMysqli::getDriverInfo ( )

Return version of database client driver.

Returns
string Version string

Implements Database.

Definition at line 285 of file mysqli.class.php.

◆ getListOfCharacterSet()

DoliDBMysqli::getListOfCharacterSet ( )

Return list of available charset that can be used to store data in database.

Returns
array|null List of Charset

Implements Database.

Definition at line 1139 of file mysqli.class.php.

◆ getListOfCollation()

DoliDBMysqli::getListOfCollation ( )

Return list of available collation that can be used for database.

Returns
array|null Liste of Collation

Implements Database.

Definition at line 1182 of file mysqli.class.php.

◆ getPathOfDump()

DoliDBMysqli::getPathOfDump ( )

Return full path of dump program.

Returns
string Full path of dump program

Implements Database.

Definition at line 1205 of file mysqli.class.php.

◆ getPathOfRestore()

DoliDBMysqli::getPathOfRestore ( )

Return full path of restore program.

Returns
string Full path of restore program

Implements Database.

Definition at line 1223 of file mysqli.class.php.

◆ getServerParametersValues()

DoliDBMysqli::getServerParametersValues (   $filter = '')

Return value of server parameters.

Parameters
string$filterFilter list on a particular value
Returns
array Array of key-values (key=>value)

Implements Database.

Definition at line 1242 of file mysqli.class.php.

◆ getServerStatusValues()

DoliDBMysqli::getServerStatusValues (   $filter = '')

Return value of server status (current indicators on memory, cache...)

Parameters
string$filterFilter list on a particular value
Returns
array Array of key-values (key=>value)

Implements Database.

Definition at line 1266 of file mysqli.class.php.

◆ getVersion()

DoliDBMysqli::getVersion ( )

Return version of database server.

Returns
string Version string

Implements Database.

Definition at line 275 of file mysqli.class.php.

◆ hintindex()

DoliDBMysqli::hintindex (   $nameofindex)

Return SQL string to force an index.

Parameters
string$nameofindexName of index
Returns
string SQL string

Reimplemented from DoliDB.

Definition at line 197 of file mysqli.class.php.

◆ last_insert_id()

DoliDBMysqli::last_insert_id (   $tab,
  $fieldid = 'rowid' 
)

Get last ID after an insert INSERT.

Parameters
string$tabTable name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
string$fieldidField name
Returns
int|string Id of row

Implements Database.

Definition at line 600 of file mysqli.class.php.

◆ num_rows()

DoliDBMysqli::num_rows (   $resultset)

Return number of lines for result of a SELECT.

Parameters
mysqli_result$resultsetResulset of requests
Returns
int Nb of lines
See also
affected_rows()

Implements Database.

Definition at line 454 of file mysqli.class.php.

◆ query()

bool mysqli_result Resultset of last DoliDBMysqli::query (   $query,
  $usesavepoint = 0,
  $type = 'auto',
  $result_mode = 0 
)

Execute a SQL request and return the resultset.

Parameters
string$querySQL query string
int$usesavepoint0=Default mode, 1=Run a savepoint before and a rollback to savepoint if error (this allow to have some request with errors inside global transactions). Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
string$typeType of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
int$result_modeResult mode (Using 1=MYSQLI_USE_RESULT instead of 0=MYSQLI_STORE_RESULT will not buffer the result and save memory)
Returns
false|mysqli_result Resultset of answer

Implements Database.

Definition at line 321 of file mysqli.class.php.

References dol_syslog(), DoliDB\lasterrno(), DoliDB\lasterror(), and DoliDB\lastquery().

◆ select_db()

DoliDBMysqli::select_db (   $database)

Select a database.

Parameters
string$databaseName of database
Returns
boolean true if OK, false if KO

Implements Database.

Definition at line 223 of file mysqli.class.php.

References dol_syslog().


The documentation for this class was generated from the following file: