dolibarr  20.0.0-alpha
Database.interface.php
1 <?php
2 /* Copyright (C) 2001 Fabien Seisen <seisen@linuxfr.org>
3  * Copyright (C) 2002-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
4  * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
5  * Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
6  * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
7  * Copyright (C) 2014-2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
8  * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
9  * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program. If not, see <https://www.gnu.org/licenses/>.
23  */
24 
28 interface Database
29 {
38  public function ifsql($test, $resok, $resko);
39 
46  public function stddevpop($nameoffield);
47 
48  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
56  public function fetch_row($resultset);
57  // phpcs:enable
58 
66  public function idate($param);
67 
73  public function lasterrno();
74 
81  public function begin($textinlog = '');
82 
83  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
95  public function DDLCreateDb($database, $charset = '', $collation = '', $owner = '');
96  // phpcs:enable
97 
103  public function getVersionArray();
104 
112  public function convertSQLFromMysql($line, $type = 'ddl');
113 
114  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
122  public function affected_rows($resultset);
123  // phpcs:enable
124 
130  public function error();
131 
132  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
140  public function DDLListTables($database, $table = '');
141  // phpcs:enable
142 
143  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
151  public function DDLListTablesFull($database, $table = '');
152  // phpcs:enable
153 
159  public function lastquery();
160 
168  public function order($sortfield = '', $sortorder = '');
169 
176  public function decrypt($value);
177 
178  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
185  public function fetch_array($resultset);
186  // phpcs:enable
187 
193  public function lasterror();
194 
201  public function escape($stringtoencode);
202 
210  public function escapeforlike($stringtoencode);
211 
218  public function sanitize($stringtosanitize);
219 
220  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
228  public function last_insert_id($tab, $fieldid = 'rowid');
229  // phpcs:enable
230 
236  public function getPathOfRestore();
237 
244  public function rollback($log = '');
245 
256  public function query($query, $usesavepoint = 0, $type = 'auto', $result_mode = 0);
257 
269  public function connect($host, $login, $passwd, $name, $port = 0);
270 
278  public function plimit($limit = 0, $offset = 0);
279 
286  public function getServerParametersValues($filter = '');
287 
294  public function getServerStatusValues($filter = '');
295 
301  public function getDefaultCollationDatabase();
302 
303  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
311  public function num_rows($resultset);
312  // phpcs:enable
313 
319  public function getPathOfDump();
320 
326  public function getDriverInfo();
327 
333  public function errno();
334 
335  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
348  public function DDLCreateTable($table, $fields, $primary_key, $type, $unique_keys = null, $fulltext_keys = null, $keys = null);
349  // phpcs:enable
350 
351  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
358  public function DDLDropTable($table);
359  // phpcs:enable
360 
366  public function getListOfCharacterSet();
367 
368  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
378  public function DDLAddField($table, $field_name, $field_desc, $field_position = "");
379  // phpcs:enable
380 
381  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
389  public function DDLDropField($table, $field_name);
390  // phpcs:enable
391 
392  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
401  public function DDLUpdateField($table, $field_name, $field_desc);
402  // phpcs:enable
403 
409  public function getListOfCollation();
410 
411  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
419  public function DDLDescTable($table, $field = "");
420  // phpcs:enable
421 
427  public function getVersion();
428 
435 
436  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
446  public function DDLCreateUser(
447  $dolibarr_main_db_host,
448  $dolibarr_main_db_user,
449  $dolibarr_main_db_pass,
450  $dolibarr_main_db_name
451  );
452  // phpcs:enable
453 
454  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
461  public function DDLInfoTable($table);
462  // phpcs:enable
463 
473  public function jdate($string, $gm = false);
474 
483  public function encrypt($fieldorvalue, $withQuotes = 1);
484 
491  public function commit($log = '');
492 
499  public function free($resultset = null);
500 
507  public function close();
508 
514  public function lastqueryerror();
515 
516  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
522  public function DDLGetConnectId();
523  // phpcs:enable
524 
525  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
532  public function fetch_object($resultset);
533  // phpcs:enable
534 
535  // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
542  public function select_db($database);
543  // phpcs:enable
544 }
Class to manage Dolibarr database access for an SQL database.
DDLInfoTable($table)
List information of columns into a table.
error()
Return description of last error.
order($sortfield='', $sortorder='')
Define sort criteria of request.
lasterror()
Return last error label.
select_db($database)
Select a database.
commit($log='')
Validate a database transaction.
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)
DDLListTables($database, $table='')
List tables into a database.
fetch_array($resultset)
Return datas as an array.
decrypt($value)
Decrypt sensitive data in database.
close()
Close database connection.
errno()
Return generic error code of last operation.
lasterrno()
Return last error code.
DDLGetConnectId()
Return connection ID.
rollback($log='')
Canceling a transaction and returning to old values.
encrypt($fieldorvalue, $withQuotes=1)
Encrypt sensitive data in database Warning: This function includes the escape and add the SQL simple ...
DDLDropField($table, $field_name)
Drop a field from table.
lastquery()
Return last request executed with query()
connect($host, $login, $passwd, $name, $port=0)
Connection to server.
query($query, $usesavepoint=0, $type='auto', $result_mode=0)
Execute a SQL request and return the resultset.
ifsql($test, $resok, $resko)
Format a SQL IF.
DDLDescTable($table, $field="")
Return a pointer of line with description of a table or field.
sanitize($stringtosanitize)
Sanitize a string for SQL forging.
DDLCreateTable($table, $fields, $primary_key, $type, $unique_keys=null, $fulltext_keys=null, $keys=null)
Create a table into database.
escapeforlike($stringtoencode)
Escape a string to insert data into a like.
getListOfCollation()
Return list of available collation that can be used for database.
begin($textinlog='')
Start transaction.
DDLAddField($table, $field_name, $field_desc, $field_position="")
Create a new field into table.
DDLDropTable($table)
Drop a table into database.
getDriverInfo()
Return version of database client driver.
getVersion()
Return version of database server.
getServerStatusValues($filter='')
Return value of server status.
affected_rows($resultset)
Return the number of lines in the result of a request INSERT, DELETE or UPDATE.
getVersionArray()
Return version of database server into an array.
getListOfCharacterSet()
Return list of available charset that can be used to store data in database.
idate($param)
Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date fiel...
lastqueryerror()
Return last query in error.
getPathOfRestore()
Return full path of restore program.
getPathOfDump()
Return full path of dump program.
DDLListTablesFull($database, $table='')
List tables into a database with table type.
getDefaultCollationDatabase()
Return collation used in database.
DDLCreateDb($database, $charset='', $collation='', $owner='')
Create a new database Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated We fo...
stddevpop($nameoffield)
Return SQL string to aggregate using the Standard Deviation of population.
DDLUpdateField($table, $field_name, $field_desc)
Update format of a field into a table.
escape($stringtoencode)
Escape a string to insert data.
convertSQLFromMysql($line, $type='ddl')
Convert a SQL request in Mysql syntax to native syntax.
last_insert_id($tab, $fieldid='rowid')
Get last ID after an insert INSERT.
fetch_row($resultset)
Return datas as an array @TODO deprecate this.
fetch_object($resultset)
Returns the current line (as an object) for the resultset cursor.
num_rows($resultset)
Return number of lines for result of a SELECT.
getServerParametersValues($filter='')
Return value of server parameters.
jdate($string, $gm=false)
Convert (by PHP) a PHP server TZ string date into a Timestamps date (GMT if gm=true) 19700101020000 -...
free($resultset=null)
Free last resultset used.
plimit($limit=0, $offset=0)
Define limits and offset of request.
getDefaultCharacterSetDatabase()
Return charset used to store data in database.