ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilDBMySQL Class Reference

MySQL Database Wrapper. More...

+ Inheritance diagram for ilDBMySQL:
+ Collaboration diagram for ilDBMySQL:

Public Member Functions

 supportsSlave ()
 Supports slave. More...
 
 setDBSlaveActive ($a_val)
 Set slave active. More...
 
 getDBSlaveActive ()
 Get slave active. More...
 
 setDBSlaveUser ($a_user)
 Set slave database user. More...
 
 getDBSlaveUser ()
 Get slave database user. More...
 
 setDBSlavePort ($a_port)
 Set slave database port. More...
 
 getDBSlavePort ()
 Get slave database port. More...
 
 setDBSlaveHost ($a_host)
 Set slave database host. More...
 
 getDBSlaveHost ()
 Get slave database host. More...
 
 setDBSlavePassword ($a_password)
 Set slave database password. More...
 
 getDBSlavePassword ()
 Get slave database password. More...
 
 setDBSlaveName ($a_name)
 Set slave database name. More...
 
 getDBSlaveName ()
 Get slave database name. More...
 
 getDSN ()
 Get DSN. More...
 
 getSlaveDSN ()
 Get slave DSN. More...
 
 getHostDSN ()
 Get Host DSN. More...
 
 getDBType ()
 Get DB Type. More...
 
 setStorageEngine ($a_storage_engine)
 Set the storage engine. More...
 
 initFromIniFile ($tmpClientIniFile=null)
 Init db parameters from ini file. More...
 
 doConnect ()
 Standard way to connect to db. More...
 
 initConnection ()
 Initialize the database connection. More...
 
 now ()
 now() More...
 
 getDBVersion ()
 get mysql version More...
 
 isMysql4_0OrHigher ()
 check wether current MySQL server is version 4.0.x or higher More...
 
 isMysql4_1 ()
 check wether current MySQL server is version 4.1.x More...
 
 isMysql4_1OrHigher ()
 check wether current MySQL server is version 4.1.x or higher More...
 
 isMysql5_6OrHigher ()
 check wether current MySQL server is version 5.6.x or higher More...
 
 checkQuerySize ($a_query)
 Check query size. More...
 
 supportsFulltext ()
 Is fulltext index supported? More...
 
 addFulltextIndex ($a_table, $a_fields, $a_name="in")
 Add fulltext index. More...
 
 dropFulltextIndex ($a_table, $a_name)
 Add fulltext index. More...
 
 isFulltextIndex ($a_table, $a_name)
 Is index a fulltext index? More...
 
 lockTables ($a_tables)
 Lock table. More...
 
 unlockTables ()
 Unlock tables. More...
 
 getErrorNo ()
 
 getLastError ()
 
 query ($sql, $a_handle_error=true)
 
 loadModule ($module)
 
 getStorageEngine ()
 
 groupConcat ($a_field_name, $a_seperator=",", $a_order=null)
 
Parameters
string$a_field_name
string$a_seperator
string$a_order
Returns
string
More...
 
- Public Member Functions inherited from ilDB
 setDBUser ($a_user)
 Set database user. More...
 
 getDBUser ()
 Get database user. More...
 
 setDBPort ($a_port)
 Set database port. More...
 
 getDBPort ()
 Get database port. More...
 
 setDBHost ($a_host)
 Set database host. More...
 
 getDBHost ()
 Get database host. More...
 
 setDBPassword ($a_password)
 Set database password. More...
 
 getDBPassword ()
 Get database password. More...
 
 setDBName ($a_name)
 Set database name. More...
 
 getDBName ()
 Get database name. More...
 
 getDSN ()
 Get DSN. More...
 
 getDBVersion ()
 Get DB version. More...
 
 getDBType ()
 Get DSN. More...
 
 enableResultBuffering ($a_status)
 En/disable result buffering. More...
 
 initFromIniFile ($tmpClientIniFile=null)
 Init db parameters from ini file. More...
 
 connect ($a_return_false_for_error=false)
 Open the connection. More...
 
 doConnect ()
 Standard way to connect to db. More...
 
 disconnect ()
 Disconnect. More...
 
 getHostDSN ()
 Should return a valid value, if host connections are possible (connectHost) to create a new database from scratch. More...
 
 connectHost ()
 Sets up a host connection only (no specific database used). More...
 
 supportsFulltext ()
 
 supportsSlave ()
 Supports slave. More...
 
 supports ($feature)
 
 supportsTransactions ()
 
 useSlave ($a_val=true)
 Use slave. More...
 
 handleError ($a_res, $a_info="", $a_level="")
 Handle MDB2 Errors. More...
 
 raisePearError ($a_message, $a_level="")
 Raise an error. More...
 
 createDatabase ($a_name, $a_charset="utf8", $a_collation="")
 Create database. More...
 
 createTable ( $a_name, $a_definition_array, $a_drop_table=false, $a_ignore_erros=false)
 Create a new table in the database. More...
 
 dropTable ($a_name, $a_error_if_not_existing=true)
 Drop a table. More...
 
 alterTable ($a_name, $a_changes)
 Alter a table in the database This method is DEPRECATED, see http://www.ilias.de/docu/goto.php?target=pg_25354_42&client_id=docu PLEASE USE THE SPECIALIZED METHODS OF THIS CLASS TO CHANGE THE DB SCHEMA. More...
 
 addTableColumn ($a_table, $a_column, $a_attributes)
 Add table column Use this only on aleady "abstracted" tables. More...
 
 dropTableColumn ($a_table, $a_column)
 Drop table column Use this only on aleady "abstracted" tables. More...
 
 modifyTableColumn ($a_table, $a_column, $a_attributes)
 Modify a table column Use this only on aleady "abstracted" tables. More...
 
 renameTableColumn ($a_table, $a_column, $a_new_column)
 Rename a table column Use this only on aleady "abstracted" tables. More...
 
 renameTable ($a_name, $a_new_name)
 Rename a table. More...
 
 addPrimaryKey ($a_table, $a_fields)
 Add a primary key to a table. More...
 
 getPrimaryKeyIdentifier ()
 Primary key identifier. More...
 
 dropPrimaryKey ($a_table)
 Drop a primary key from a table. More...
 
 addFulltextIndex ($a_table, $a_fields, $a_name="in")
 Add fulltext index. More...
 
 isFulltextIndex ($a_table, $a_name)
 Is index a fulltext index? More...
 
 indexExistsByFields ($a_table, $a_fields)
 Check if index exists. More...
 
 dropIndexByFields ($a_table, $a_fields)
 Drop index by field(s) More...
 
 dropIndex ($a_table, $a_name="in")
 Drop an index from a table. More...
 
 addUniqueConstraint ($a_table, $a_fields, $a_name="con")
 Add a unique constraint to a table. More...
 
 dropUniqueConstraint ($a_table, $a_name="con")
 Drop a constraint from a table. More...
 
 dropUniqueConstraintByFields ($a_table, $a_fields)
 Drop constraint by field(s) More...
 
 createSequence ($a_table_name, $a_start=1)
 Create a sequence for a table. More...
 
 dropSequence ($a_table_name)
 Drop a sequence for a table. More...
 
 checkTableName ($a_name)
 Check whether a table name is valid. More...
 
 checkTableColumns ($a_cols)
 Check table columns definition. More...
 
 checkColumn ($a_col, $a_def)
 Check column definition. More...
 
 checkColumnDefinition ($a_def, $a_modify_mode=false)
 Check whether a column definition is valid. More...
 
 checkColumnName ($a_name)
 Check whether a column name is valid. More...
 
 checkIndexName ($a_name)
 Check whether an index name is valid. More...
 
 getAllowedAttributes ()
 
 constraintName ($a_table, $a_constraint)
 Determine contraint name by table name and constraint name. More...
 
 query ($sql, $a_handle_error=true)
 Query. More...
 
 queryF ($a_query, $a_types, $a_values)
 Formatted query (for SELECTS). More...
 
 manipulateF ($a_query, $a_types, $a_values)
 Formatted manupulate (for DELETE, UPDATE, INSERT). More...
 
 logStatement ($sql)
 Helper function, should usually not be called. More...
 
 setLimit ($a_limit, $a_offset=0)
 Set limit and offset for a query. More...
 
 nextId ($a_table_name)
 Get next ID for an index. More...
 
 manipulate ($sql)
 Data manipulation. More...
 
 prepare ($a_query, $a_types=null, $a_result_types=null)
 Prepare a query (SELECT) statement to be used with execute. More...
 
 prepareManip ($a_query, $a_types=null)
 Prepare a data manipulation statement to be used with execute. More...
 
 execute ($a_stmt, $a_data=null)
 Execute a query statement prepared by either prepare() or prepareManip() More...
 
 executeMultiple ($a_stmt, $a_data)
 Execute a query statement prepared by either prepare() or prepareManip() with multiple data arrays. More...
 
 insert ($a_table, $a_columns)
 Convenient method for standard insert statements, example field array: More...
 
 update ($a_table, $a_columns, $a_where)
 Convenient method for standard update statements, example field array: More...
 
 replace ($a_table, $a_pk_columns, $a_other_columns)
 Replace into method. More...
 
 fetchAssoc ($a_set)
 Fetch row as associative array from result set. More...
 
 free ($a_st)
 Free a statement / result set. More...
 
 fetchObject ($a_set)
 Fetch row as object from result set. More...
 
 numRows ($a_set)
 Fetch row as associative array from result set. More...
 
 in ($a_field, $a_values, $negate=false, $a_type="")
 Get abstract in-clause for given array. More...
 
 addTypesToArray ($a_arr, $a_type, $a_cnt)
 Adds a type x times to an array. More...
 
 now ()
 now() More...
 
 concat (array $a_values, $a_allow_null=true)
 Abstraction of SQL function CONCAT. More...
 
 substr ($a_exp, $a_pos=1, $a_len=-1)
 Substring. More...
 
 upper ($a_exp)
 Upper. More...
 
 lower ($a_exp)
 Upper. More...
 
 locate ($a_needle, $a_string, $a_start_pos=1)
 Create locate string. More...
 
 like ($a_col, $a_type, $a_value="?", $case_insensitive=true)
 Like. More...
 
 equals ($a_col, $a_value, $a_type, $a_empty_or_null=false)
 Use this only on text fields. More...
 
 equalsNot ($a_col, $a_value, $a_type, $a_empty_or_null=false)
 Use this only on text fields. More...
 
 fromUnixtime ($a_expr, $a_to_text=true)
 fromUnixtime (makes timestamp out of unix timestamp) More...
 
 unixTimestamp ()
 Unix timestamp. More...
 
 tableExists ($a_table)
 Check, whether a given table exists. More...
 
 tableColumnExists ($a_table, $a_column_name)
 Checks for the existence of a table column. More...
 
 uniqueConstraintExists ($a_table, array $a_fields)
 Checks if a unique constraint exists based on the fields of the unique constraint (not the name) More...
 
 listTables ()
 Get all tables. More...
 
 sequenceExists ($a_sequence)
 Check, whether a given sequence exists. More...
 
 listSequences ()
 Get all sequences. More...
 
 quote ($a_query, $a_type=null)
 Wrapper for quote method. More...
 
 quoteIdentifier ($a_identifier, $check_option=false)
 Quote table and field names. More...
 
 beginTransaction ()
 Begin Transaction. More...
 
 commit ()
 Commit a transaction. More...
 
 rollback ()
 Rollback a transaction. More...
 
 lockTables ($a_tables)
 Abstraction of lock table. More...
 
 unlockTables ()
 Unlock tables locked by previous lock table calls. More...
 
 autoExecute ($a_tablename, $a_fields, $a_mode=MDB2_AUTOQUERY_INSERT, $a_where=false)
 Wrapper for Pear autoExecute. More...
 
 getLastInsertId ()
 Get last insert id. More...
 
 getOne ($sql)
 getOne. More...
 
 getRow ($sql, $mode=ilDBConstants::FETCHMODE_OBJECT)
 getRow. More...
 
 setSubType ($a_value)
 Set sub type. More...
 
 getSubType ()
 Get sub type. More...
 
 migrateAllTablesToEngine ($engine=ilDBConstants::MYSQL_ENGINE_INNODB)
 
 supportsEngineMigration ()
 
 getSequenceName ($table_name)
 
 buildAtomQuery ()
 
 sanitizeMB4StringIfNotSupported ($query)
 
Parameters
$querystring to sanitize, all MB4-Characters like emojis will re replaced with ???
Returns
string sanitized query
More...
 
 doesCollationSupportMB4Strings ()
 
 cast ($a_field_name, $a_dest_type)
 
- Public Member Functions inherited from PEAR
 __construct ($error_class=null)
 Constructor. More...
 
 _PEAR ()
 Destructor (the emulated type of...). More...
 
 registerShutdownFunc ($func, $args=array())
 Use this function to register a shutdown method for static classes. More...
 
 isError ($data, $code=null)
 Tell whether a value is a PEAR error. More...
 
 expectError ($code=' *')
 This method is used to tell which errors you expect to get. More...
 
 popExpect ()
 This method pops one element off the expected error codes stack. More...
 
 _checkDelExpect ($error_code)
 This method checks unsets an error code if available. More...
 
 delExpect ($error_code)
 This method deletes all occurences of the specified element from the expected error codes stack. More...
 
raiseError ($message=null, $code=null, $mode=null, $options=null, $userinfo=null, $error_class=null, $skipmsg=false)
 This method is a wrapper that returns an instance of the configured error class with this object's default error handling applied. More...
 
throwError ($message=null, $code=null, $userinfo=null)
 Simpler form of raiseError with fewer options. More...
 
 staticPushErrorHandling ($mode, $options=null)
 
 staticPopErrorHandling ()
 
 pushErrorHandling ($mode, $options=null)
 Push a new error handler on top of the error handler options stack. More...
 
 popErrorHandling ()
 Pop the last error handler used. More...
 
 loadExtension ($ext)
 OS independant PHP extension load. More...
 
- Public Member Functions inherited from ilDBInterface
 query ($query)
 Run a (read-only) Query on the database. More...
 
 fetchAll ($query_result, $fetch_mode=ilDBConstants::FETCHMODE_ASSOC)
 
 addIndex ($table_name, $fields, $index_name='', $fulltext=false)
 
 substr ($a_exp)
 

Static Public Member Functions

static getReservedWords ()
 Get reserved words. More...
 
- Static Public Member Functions inherited from ilDB
static getReservedWords ()
 Get reserved words. More...
 
static isDbError ($a_res)
 Check error. More...
 
static isReservedWord ($a_word)
 Checks whether a word is a reserved word in one of the supported databases. More...
 
- Static Public Member Functions inherited from PEAR
static & getStaticProperty ($class, $var)
 If you have a class that's mostly/entirely static, and you need static properties, you can use this method to simulate them. More...
 
static setErrorHandling ($mode=null, $options=null)
 Sets how errors generated by this object should be handled. More...
 

Data Fields

 $max_allowed_packet_size
 
- Data Fields inherited from ilDB
const LOCK_WRITE = 1
 
const LOCK_READ = 2
 
 $error_class
 
 $db
 
 $result
 
 $allowed_attributes
 
 $sub_type
 
- Data Fields inherited from PEAR
 $_debug = false
 
 $_default_error_mode = null
 
 $_default_error_options = null
 
 $_default_error_handler = ''
 
 $_error_class = 'PEAR_Error'
 
 $_expected_errors = array()
 

Protected Member Functions

 __buildDSN ($a_host, $a_name, $a_user, $a_pass, $a_port="")
 Build DSN string. More...
 
 isMySQLi ()
 
 setMaxAllowedPacket ()
 Set maximum allowed packet size. More...
 
 getCreateTableOptions ()
 
- Protected Member Functions inherited from ilDB
 initConnection ()
 Initialize the database connection. More...
 
 initHostConnection ()
 Initialize the host connection (no specific database) More...
 
 loadMDB2Extensions ()
 load additional mdb2 extensions and set their constants More...
 
 getCreateTableOptions ()
 Get options for the create table statement. More...
 

Protected Attributes

 $slave_active = false
 
 $use_slave = false
 

Detailed Description

MySQL Database Wrapper.

This class extends the main ILIAS database wrapper ilDB. Only a few methods should be overwritten, that contain MySQL specific statements and methods.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
Id
class.ilDB.php 18989 2009-02-15 12:57:19Z akill

Definition at line 18 of file class.ilDBMySQL.php.

Member Function Documentation

◆ __buildDSN()

ilDBMySQL::__buildDSN (   $a_host,
  $a_name,
  $a_user,
  $a_pass,
  $a_port = "" 
)
protected

Build DSN string.

Parameters

Definition at line 193 of file class.ilDBMySQL.php.

References isMySQLi().

Referenced by getDSN(), and getSlaveDSN().

194  {
195  $db_port_str = "";
196  if (trim($a_port) != "") {
197  $db_port_str = ":" . $a_port;
198  }
199 
200  $driver = $this->isMySQLi() ? "mysqli" : "mysql";
201 
202  return $driver . "://" . $a_user . ":" . $a_pass .
203  "@" . $a_host . $db_port_str . "/" . $a_name;
204  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addFulltextIndex()

ilDBMySQL::addFulltextIndex (   $a_table,
  $a_fields,
  $a_name = "in" 
)

Add fulltext index.

Implements ilDBInterface.

Definition at line 494 of file class.ilDBMySQL.php.

References ilDB\constraintName(), and query().

495  {
496  $i_name = $this->constraintName($a_table, $a_name) . "_idx";
497  $f_str = implode($a_fields, ",");
498  $q = "ALTER TABLE $a_table ADD FULLTEXT $i_name ($f_str)";
499  $this->query($q);
500  }
query($sql, $a_handle_error=true)
constraintName($a_table, $a_constraint)
Determine contraint name by table name and constraint name.
+ Here is the call graph for this function:

◆ checkQuerySize()

ilDBMySQL::checkQuerySize (   $a_query)

Check query size.

Definition at line 442 of file class.ilDBMySQL.php.

References $lang.

443  {
444  global $lang;
445 
446  if (strlen($a_query) >= $this->max_allowed_packet_size) {
447  return false;
448  } else {
449  return true;
450  }
451  }

◆ doConnect()

ilDBMySQL::doConnect ( )

Standard way to connect to db.

Definition at line 320 of file class.ilDBMySQL.php.

References array, MDB2\connect(), getDBSlaveActive(), and getSlaveDSN().

321  {
322  parent::doConnect();
323  if ($this->getDBSlaveActive()) {
324  $this->slave = MDB2::connect(
325  $this->getSlaveDSN(),
326  array("use_transactions" => false)
327  );
328  }
329  }
getDBSlaveActive()
Get slave active.
& connect($dsn, $options=false)
Create a new MDB2 connection object and connect to the specified database.
Definition: MDB2.php:436
Create styles array
The data for the language used.
getSlaveDSN()
Get slave DSN.
+ Here is the call graph for this function:

◆ dropFulltextIndex()

ilDBMySQL::dropFulltextIndex (   $a_table,
  $a_name 
)

Add fulltext index.

Implements ilDBInterface.

Definition at line 505 of file class.ilDBMySQL.php.

References ilDB\constraintName(), and query().

506  {
507  $i_name = $this->constraintName($a_table, $a_name) . "_idx";
508  $this->query("ALTER TABLE $a_table DROP FULLTEXT $i_name");
509  }
query($sql, $a_handle_error=true)
constraintName($a_table, $a_constraint)
Determine contraint name by table name and constraint name.
+ Here is the call graph for this function:

◆ getCreateTableOptions()

ilDBMySQL::getCreateTableOptions ( )
protected

Definition at line 585 of file class.ilDBMySQL.php.

References array.

586  {
587  // InnoDB is default engine for MySQL >= 5.5
588  return array('type' => 'MyISAM');
589  }
Create styles array
The data for the language used.

◆ getDBSlaveActive()

ilDBMySQL::getDBSlaveActive ( )

Get slave active.

Returns
bool slave active

Definition at line 54 of file class.ilDBMySQL.php.

References $slave_active.

Referenced by doConnect(), and query().

55  {
56  return $this->slave_active;
57  }
+ Here is the caller graph for this function:

◆ getDBSlaveHost()

ilDBMySQL::getDBSlaveHost ( )

Get slave database host.

Parameters
stringslave database host

Definition at line 114 of file class.ilDBMySQL.php.

Referenced by getSlaveDSN().

115  {
116  return $this->slave_host;
117  }
+ Here is the caller graph for this function:

◆ getDBSlaveName()

ilDBMySQL::getDBSlaveName ( )

Get slave database name.

Parameters
stringslave database name

Definition at line 154 of file class.ilDBMySQL.php.

Referenced by getSlaveDSN().

155  {
156  return $this->slave_name;
157  }
+ Here is the caller graph for this function:

◆ getDBSlavePassword()

ilDBMySQL::getDBSlavePassword ( )

Get slave database password.

Parameters
stringslave database password

Definition at line 134 of file class.ilDBMySQL.php.

Referenced by getSlaveDSN().

135  {
136  return $this->slave_password;
137  }
+ Here is the caller graph for this function:

◆ getDBSlavePort()

ilDBMySQL::getDBSlavePort ( )

Get slave database port.

Parameters
stringslave database port

Definition at line 94 of file class.ilDBMySQL.php.

Referenced by getSlaveDSN().

95  {
96  return $this->slave_port;
97  }
+ Here is the caller graph for this function:

◆ getDBSlaveUser()

ilDBMySQL::getDBSlaveUser ( )

Get slave database user.

Parameters
stringslave database user

Definition at line 74 of file class.ilDBMySQL.php.

Referenced by getSlaveDSN().

75  {
76  return $this->slave_user;
77  }
+ Here is the caller graph for this function:

◆ getDBType()

ilDBMySQL::getDBType ( )

Get DB Type.

Implements ilDBInterface.

Definition at line 225 of file class.ilDBMySQL.php.

226  {
227  return "mysql";
228  }

◆ getDBVersion()

ilDBMySQL::getDBVersion ( )

get mysql version

Definition at line 364 of file class.ilDBMySQL.php.

References isMySQLi().

Referenced by isMysql4_0OrHigher(), isMysql4_1(), isMysql4_1OrHigher(), isMysql5_6OrHigher(), and setMaxAllowedPacket().

365  {
366  if (!$this->isMySQLi()) {
367  $vers = @mysql_get_server_info();
368  } else {
369  $vers = @mysqli_get_server_info($this->db->connection);
370  }
371  if (trim($vers) == "") {
372  $vers = "Unknown";
373  }
374  return $vers;
375  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDSN()

ilDBMySQL::getDSN ( )

Get DSN.

Implements ilDBInterface.

Definition at line 162 of file class.ilDBMySQL.php.

References __buildDSN(), ilDB\getDBHost(), ilDB\getDBName(), ilDB\getDBPassword(), ilDB\getDBPort(), and ilDB\getDBUser().

163  {
164  return $this->__buildDSN(
165  $this->getDBHost(),
166  $this->getDBName(),
167  $this->getDBUser(),
168  $this->getDBPassword(),
169  $this->getDBPort()
170  );
171  }
getDBPort()
Get database port.
Definition: class.ilDB.php:103
getDBName()
Get database name.
Definition: class.ilDB.php:163
getDBHost()
Get database host.
Definition: class.ilDB.php:123
getDBUser()
Get database user.
Definition: class.ilDB.php:83
__buildDSN($a_host, $a_name, $a_user, $a_pass, $a_port="")
Build DSN string.
getDBPassword()
Get database password.
Definition: class.ilDB.php:143
+ Here is the call graph for this function:

◆ getErrorNo()

ilDBMySQL::getErrorNo ( )

Definition at line 591 of file class.ilDBMySQL.php.

References isMySQLi().

592  {
593  if (!$this->isMySQLi()) {
594  return mysql_errno();
595  } else {
596  return mysqli_errno($this->db->connection);
597  }
598  }
+ Here is the call graph for this function:

◆ getHostDSN()

ilDBMySQL::getHostDSN ( )

Get Host DSN.

Definition at line 214 of file class.ilDBMySQL.php.

References ilDB\getDBPassword(), ilDB\getDBUser(), and isMySQLi().

215  {
216  $driver = $this->isMySQLi() ? "mysqli" : "mysql";
217 
218  return $driver . "://" . $this->getDBUser() . ":" . $this->getDBPassword() .
219  "@" . $this->getdbHost();
220  }
getDBUser()
Get database user.
Definition: class.ilDB.php:83
getDBPassword()
Get database password.
Definition: class.ilDB.php:143
+ Here is the call graph for this function:

◆ getLastError()

ilDBMySQL::getLastError ( )

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

References isMySQLi().

601  {
602  if (!$this->isMySQLi()) {
603  return mysql_error();
604  } else {
605  return mysqli_error($this->db->connection);
606  }
607  }
+ Here is the call graph for this function:

◆ getReservedWords()

static ilDBMySQL::getReservedWords ( )
static

Get reserved words.

Implements ilDBInterface.

Definition at line 242 of file class.ilDBMySQL.php.

References array.

243  {
244  // version: 5.1
245  // url: http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
246  return array(
247  "ACCESSIBLE", "ADD", "ALL", "ALTER", "ANALYZE", "AND",
248  "AS", "ASC", "ASENSITIVE", "BEFORE", "BETWEEN", "BIGINT",
249  "BINARY", "BLOB", "BOTH", "BY", "CALL", "CASCADE",
250  "CASE", "CHANGE", "CHAR", "CHARACTER", "CHECK", "COLLATE",
251  "COLUMN", "CONDITION", "CONSTRAINT", "CONTINUE", "CONVERT", "CREATE",
252  "CROSS", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR",
253  "DATABASE", "DATABASES", "DAY_HOUR", "DAY_MICROSECOND", "DAY_MINUTE", "DAY_SECOND",
254  "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DELAYED", "DELETE",
255  "DESC", "DESCRIBE", "DETERMINISTIC", "DISTINCT", "DISTINCTROW", "DIV",
256  "DOUBLE", "DROP", "DUAL", "EACH", "ELSE", "ELSEIF",
257  "ENCLOSED", "ESCAPED", "EXISTS", "EXIT", "EXPLAIN", "FALSE",
258  "FETCH", "FLOAT", "FLOAT4", "FLOAT8", "FOR", "FORCE",
259  "FOREIGN", "FROM", "FULLTEXT", "GRANT", "GROUP", "HAVING",
260  "HIGH_PRIORITY", "HOUR_MICROSECOND", "HOUR_MINUTE", "HOUR_SECOND", "IF", "IGNORE",
261  "IN", "INDEX", "INFILE", "INNER", "INOUT", "INSENSITIVE",
262  "INSERT", "INT", "INT1", "INT2", "INT3", "INT4",
263  "INT8", "INTEGER", "INTERVAL", "INTO", "IS", "ITERATE",
264  "JOIN", "KEY", "KEYS", "KILL", "LEADING", "LEAVE",
265  "LEFT", "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD",
266  "LOCALTIME", "LOCALTIMESTAMP", "LOCK", "LONG", "LONGBLOB", "LONGTEXT",
267  "LOOP", "LOW_PRIORITY", "MASTER_SSL_VERIFY_SERVER_CERT", "MATCH", "MEDIUMBLOB", "MEDIUMINT",
268  "MEDIUMTEXT", "MIDDLEINT", "MINUTE_MICROSECOND", "MINUTE_SECOND", "MOD", "MODIFIES",
269  "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", "NULL", "NUMERIC", "ON",
270  "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", "OUT",
271  "OUTER", "OUTFILE", "PRECISION", "PRIMARY", "PROCEDURE", "PURGE",
272  "RANGE", "READ", "READS", "READ_WRITE", "REAL", "REFERENCES",
273  "REGEXP", "RELEASE", "RENAME", "REPEAT", "REPLACE", "REQUIRE",
274  "RESTRICT", "RETURN", "REVOKE", "RIGHT", "RLIKE", "SCHEMA",
275  "SCHEMAS", "SECOND_MICROSECOND", "SELECT", "SENSITIVE", "SEPARATOR", "SET",
276  "SHOW", "SMALLINT", "SPATIAL", "SPECIFIC", "SQL", "SQLEXCEPTION",
277  "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT", "SSL",
278  "STARTING", "STRAIGHT_JOIN", "TABLE", "TERMINATED", "THEN", "TINYBLOB",
279  "TINYINT", "TINYTEXT", "TO", "TRAILING", "TRIGGER", "TRUE",
280  "UNDO", "UNION", "UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE",
281  "USAGE", "USE", "USING", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP",
282  "VALUES", "VARBINARY", "VARCHAR", "VARCHARACTER", "VARYING", "WHEN",
283  "WHERE", "WHILE", "WITH", "WRITE", "XOR", "YEAR_MONTH",
284  "ZEROFILL"
285  );
286  }
Create styles array
The data for the language used.

◆ getSlaveDSN()

ilDBMySQL::getSlaveDSN ( )

Get slave DSN.

Definition at line 176 of file class.ilDBMySQL.php.

References __buildDSN(), getDBSlaveHost(), getDBSlaveName(), getDBSlavePassword(), getDBSlavePort(), and getDBSlaveUser().

Referenced by doConnect().

177  {
178  return $this->__buildDSN(
179  $this->getDBSlaveHost(),
180  $this->getDBSlaveName(),
181  $this->getDBSlaveUser(),
182  $this->getDBSlavePassword(),
183  $this->getDBSlavePort()
184  );
185  }
getDBSlaveHost()
Get slave database host.
getDBSlaveName()
Get slave database name.
getDBSlavePort()
Get slave database port.
getDBSlaveUser()
Get slave database user.
getDBSlavePassword()
Get slave database password.
__buildDSN($a_host, $a_name, $a_user, $a_pass, $a_port="")
Build DSN string.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getStorageEngine()

ilDBMySQL::getStorageEngine ( )
Returns
string

Implements ilDBInterface.

Definition at line 639 of file class.ilDBMySQL.php.

640  {
641  return 'MyISAM';
642  }

◆ groupConcat()

ilDBMySQL::groupConcat (   $a_field_name,
  $a_seperator = ",",
  $a_order = null 
)

Parameters
string$a_field_name
string$a_seperator
string$a_order
Returns
string

Implements ilDBInterface.

Definition at line 648 of file class.ilDBMySQL.php.

References ilDB\quote().

649  {
650  if ($a_order === null) {
651  $sql = "GROUP_CONCAT(" . $a_field_name . " SEPARATOR " . $this->quote($a_seperator, "text") . ")";
652  } else {
653  $sql = "GROUP_CONCAT(" . $a_field_name . " ORDER BY " . $a_order . " SEPARATOR " . $this->quote($a_seperator, "text") . ")";
654  }
655  return $sql;
656  }
quote($a_query, $a_type=null)
Wrapper for quote method.
+ Here is the call graph for this function:

◆ initConnection()

ilDBMySQL::initConnection ( )

Initialize the database connection.

Definition at line 335 of file class.ilDBMySQL.php.

References query(), setMaxAllowedPacket(), and setStorageEngine().

336  {
337  // SET 'max_allowed_packet' (only possible for mysql version 4)
338  $this->setMaxAllowedPacket();
339 
340  // NOTE: Two sourcecodes use this or a similar handling:
341  // - classes/class.ilDB.php
342  // - setup/classes/class.ilClient.php
343 
344  $this->query("SET NAMES utf8");
345  if (DEVMODE == 1) {
346  $this->query("SET SESSION SQL_MODE = 'ONLY_FULL_GROUP_BY'");
347  }
348  $this->setStorageEngine('MYISAM');
349  }
setMaxAllowedPacket()
Set maximum allowed packet size.
query($sql, $a_handle_error=true)
setStorageEngine($a_storage_engine)
Set the storage engine.
+ Here is the call graph for this function:

◆ initFromIniFile()

ilDBMySQL::initFromIniFile (   $tmpClientIniFile = null)

Init db parameters from ini file.

Parameters
$tmpClientIniFileoverwrite global client ini file if is set to an object

Implements ilDBInterface.

Definition at line 292 of file class.ilDBMySQL.php.

References setDBSlaveActive(), setDBSlaveHost(), setDBSlaveName(), setDBSlavePassword(), setDBSlavePort(), and setDBSlaveUser().

293  {
294  global $ilClientIniFile;
295 
296  parent::initFromIniFile($tmpClientIniFile);
297 
298  //overwrite global client ini file if local parameter is set
299  if (is_object($tmpClientIniFile)) {
300  $clientIniFile = $tmpClientIniFile;
301  } else {
302  $clientIniFile = $ilClientIniFile;
303  }
304 
305  if (is_object($clientIniFile)) {
306  if ($clientIniFile->readVariable("db", "slave_active") == 1) {
307  $this->setDBSlaveActive(true);
308  $this->setDBSlaveUser($clientIniFile->readVariable("db", "slave_user"));
309  $this->setDBSlaveHost($clientIniFile->readVariable("db", "slave_host"));
310  $this->setDBSlavePort($clientIniFile->readVariable("db", "slave_port"));
311  $this->setDBSlavePassword($clientIniFile->readVariable("db", "slave_pass"));
312  $this->setDBSlaveName($clientIniFile->readVariable("db", "slave_name"));
313  }
314  }
315  }
setDBSlaveUser($a_user)
Set slave database user.
setDBSlaveActive($a_val)
Set slave active.
setDBSlaveHost($a_host)
Set slave database host.
setDBSlavePassword($a_password)
Set slave database password.
setDBSlavePort($a_port)
Set slave database port.
setDBSlaveName($a_name)
Set slave database name.
+ Here is the call graph for this function:

◆ isFulltextIndex()

ilDBMySQL::isFulltextIndex (   $a_table,
  $a_name 
)

Is index a fulltext index?

Implements ilDBInterface.

Definition at line 514 of file class.ilDBMySQL.php.

References ilDB\fetchAssoc(), and query().

515  {
516  $set = $this->query("SHOW INDEX FROM " . $a_table);
517  while ($rec = $this->fetchAssoc($set)) {
518  if ($rec["Key_name"] == $a_name && $rec["Index_type"] == "FULLTEXT") {
519  return true;
520  }
521  }
522  }
query($sql, $a_handle_error=true)
fetchAssoc($a_set)
Fetch row as associative array from result set.
+ Here is the call graph for this function:

◆ isMysql4_0OrHigher()

ilDBMySQL::isMysql4_0OrHigher ( )

check wether current MySQL server is version 4.0.x or higher

Definition at line 381 of file class.ilDBMySQL.php.

References $version, and getDBVersion().

382  {
383  $version = explode(".", $this->getDBVersion());
384  if ((int) $version[0] < 4) {
385  return false;
386  }
387  return true;
388  }
getDBVersion()
get mysql version
+ Here is the call graph for this function:

◆ isMysql4_1()

ilDBMySQL::isMysql4_1 ( )

check wether current MySQL server is version 4.1.x

Definition at line 393 of file class.ilDBMySQL.php.

References $version, and getDBVersion().

394  {
395  $version = explode(".", $this->getDBVersion());
396  if ($version[0] == "4" && $version[1] == "1") {
397  return true;
398  }
399 
400  return false;
401  }
getDBVersion()
get mysql version
+ Here is the call graph for this function:

◆ isMysql4_1OrHigher()

ilDBMySQL::isMysql4_1OrHigher ( )

check wether current MySQL server is version 4.1.x or higher

NOTE: Two sourcecodes use this or a similar handling:

Definition at line 410 of file class.ilDBMySQL.php.

References $version, and getDBVersion().

411  {
412  $version = explode(".", $this->getDBVersion());
413  if ((int) $version[0] >= 5 ||
414  ((int) $version[0] == 4 && (int) $version[1] >= 1)) {
415  return true;
416  }
417 
418  return false;
419  }
getDBVersion()
get mysql version
+ Here is the call graph for this function:

◆ isMysql5_6OrHigher()

ilDBMySQL::isMysql5_6OrHigher ( )

check wether current MySQL server is version 5.6.x or higher

NOTE: Two sourcecodes use this or a similar handling:

Definition at line 428 of file class.ilDBMySQL.php.

References $version, and getDBVersion().

Referenced by setStorageEngine().

429  {
430  $version = explode(".", $this->getDBVersion());
431  if (
432  (int) $version[0] > 5 ||
433  ((int) $version[0] == 5 && (int) $version[1] >= 6)) {
434  return true;
435  }
436  return false;
437  }
getDBVersion()
get mysql version
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isMySQLi()

ilDBMySQL::isMySQLi ( )
protected

Definition at line 206 of file class.ilDBMySQL.php.

References ilDB\getSubType().

Referenced by __buildDSN(), getDBVersion(), getErrorNo(), getHostDSN(), and getLastError().

207  {
208  return ($this->getSubType() == "mysqli");
209  }
getSubType()
Get sub type.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loadModule()

ilDBMySQL::loadModule (   $module)
Parameters
$module
Returns
mixed

Implements ilDBInterface.

Definition at line 633 of file class.ilDBMySQL.php.

References $module.

634  {
635  return $this->db->loadModule($module);
636  }
if($modEnd===false) $module
Definition: module.php:59

◆ lockTables()

ilDBMySQL::lockTables (   $a_tables)

Lock table.

E.g $ilDB->lockTable('tree',ilDBConstants::LOCK_WRITE,'t1')

Parameters
array$a_tables
int$a_mode
string$a_alias
Deprecated:
Use ilAtomQuery instead
Returns

Implements ilDBInterface.

Definition at line 534 of file class.ilDBMySQL.php.

References $counter, $ilLog, $table, ilDBConstants\LOCK_READ, ilDBConstants\LOCK_WRITE, and query().

535  {
536  global $ilLog;
537 
538  $lock = 'LOCK TABLES ';
539 
540  $counter = 0;
541  foreach ($a_tables as $table) {
542  if ($counter++) {
543  $lock .= ', ';
544  }
545 
546  if (isset($table['sequence']) && $table['sequence']) {
547  $tableName = $this->db->getSequenceName($table['name']);
548  } else {
549  $tableName = $table['name'];
550  }
551 
552  $lock .= ($tableName . ' ');
553 
554  if ($table['alias']) {
555  $lock .= ($table['alias'] . ' ');
556  }
557 
558  switch ($table['type']) {
560  $lock .= ' READ ';
561  break;
562 
564  $lock .= ' WRITE ';
565  break;
566  }
567  }
568  if ($ilLog instanceof ilLog) {
569  $ilLog->write(__METHOD__ . ': ' . $lock);
570  }
571 
572  $this->query($lock);
573  }
logging
Definition: class.ilLog.php:18
$counter
query($sql, $a_handle_error=true)
if(empty($password)) $table
Definition: pwgen.php:24
+ Here is the call graph for this function:

◆ now()

ilDBMySQL::now ( )

now()

Implements ilDBInterface.

Definition at line 355 of file class.ilDBMySQL.php.

356  {
357  return "NOW()";
358  }

◆ query()

ilDBMySQL::query (   $sql,
  $a_handle_error = true 
)

Definition at line 613 of file class.ilDBMySQL.php.

References $r, getDBSlaveActive(), and ilDB\handleError().

Referenced by addFulltextIndex(), dropFulltextIndex(), ilDBInnoDB\initConnection(), initConnection(), isFulltextIndex(), lockTables(), setMaxAllowedPacket(), setStorageEngine(), and unlockTables().

614  {
615  if (!$this->use_slave || !$this->getDBSlaveActive()) {
616  return parent::query($sql, $a_handle_error);
617  }
618 
619  $r = $this->slave->query($sql);
620 
621  if ($a_handle_error) {
622  return $this->handleError($r, "query(" . $sql . ")");
623  }
624 
625  return $r;
626  }
getDBSlaveActive()
Get slave active.
$r
Definition: example_031.php:79
handleError($a_res, $a_info="", $a_level="")
Handle MDB2 Errors.
Definition: class.ilDB.php:423
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setDBSlaveActive()

ilDBMySQL::setDBSlaveActive (   $a_val)

Set slave active.

Parameters
bool$a_valslave active

Definition at line 44 of file class.ilDBMySQL.php.

Referenced by initFromIniFile().

45  {
46  $this->slave_active = $a_val;
47  }
+ Here is the caller graph for this function:

◆ setDBSlaveHost()

ilDBMySQL::setDBSlaveHost (   $a_host)

Set slave database host.

Parameters
stringslave database host

Definition at line 104 of file class.ilDBMySQL.php.

Referenced by initFromIniFile().

105  {
106  $this->slave_host = $a_host;
107  }
+ Here is the caller graph for this function:

◆ setDBSlaveName()

ilDBMySQL::setDBSlaveName (   $a_name)

Set slave database name.

Parameters
stringslave database name

Definition at line 144 of file class.ilDBMySQL.php.

Referenced by initFromIniFile().

145  {
146  $this->slave_name = $a_name;
147  }
+ Here is the caller graph for this function:

◆ setDBSlavePassword()

ilDBMySQL::setDBSlavePassword (   $a_password)

Set slave database password.

Parameters
stringslave database password

Definition at line 124 of file class.ilDBMySQL.php.

Referenced by initFromIniFile().

125  {
126  $this->slave_password = $a_password;
127  }
+ Here is the caller graph for this function:

◆ setDBSlavePort()

ilDBMySQL::setDBSlavePort (   $a_port)

Set slave database port.

Parameters
stringslave database port

Definition at line 84 of file class.ilDBMySQL.php.

Referenced by initFromIniFile().

85  {
86  $this->slave_port = $a_port;
87  }
+ Here is the caller graph for this function:

◆ setDBSlaveUser()

ilDBMySQL::setDBSlaveUser (   $a_user)

Set slave database user.

Parameters
stringslave database user

Definition at line 64 of file class.ilDBMySQL.php.

Referenced by initFromIniFile().

65  {
66  $this->slave_user = $a_user;
67  }
+ Here is the caller graph for this function:

◆ setMaxAllowedPacket()

ilDBMySQL::setMaxAllowedPacket ( )
protected

Set maximum allowed packet size.

todo@: This is MySQL specific and should go to a MySQL specific class.

Definition at line 458 of file class.ilDBMySQL.php.

References $query, $res, $row, $version, ilDBConstants\FETCHMODE_OBJECT, getDBVersion(), query(), and ilDB\substr().

Referenced by ilDBInnoDB\initConnection(), and initConnection().

459  {
460  $version = $this->getDBVersion();
461 
462  // CHANG VALUE IF MYSQL VERSION > 4.0
463  // Switched back to "SET GLOBAL ..."
464  // @see http://bugs.mysql.com/bug.php?id=22891
465  // smeyer 2009 07 30
466  if (substr($version, 0, 1) == "4") {
467  ini_get("post_max_size");
468  $query = "SET GLOBAL max_allowed_packet = " . (int) ini_get("post_max_size") * 1024 * 1024;
469  //echo "-".$query."-";
470  $this->query($query);
471  }
472  // STORE NEW max_size in member variable
473  $query = "SHOW VARIABLES LIKE 'max_allowed_packet'";
474  $res = $this->query($query);
475 
476  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
477  $this->max_allowed_packet_size = $row->value;
478  }
479  //echo "-".$this->max_allowed_packet_size."-";
480  return true;
481  }
query($sql, $a_handle_error=true)
substr($a_exp, $a_pos=1, $a_len=-1)
Substring.
foreach($_POST as $key=> $value) $res
$query
getDBVersion()
get mysql version
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setStorageEngine()

ilDBMySQL::setStorageEngine (   $a_storage_engine)

Set the storage engine.

Implements ilDBInterface.

Definition at line 233 of file class.ilDBMySQL.php.

References isMysql5_6OrHigher(), and query().

Referenced by ilDBInnoDB\initConnection(), and initConnection().

234  {
235  $storage_engine_var = ($this->isMysql5_6OrHigher()) ? "DEFAULT_STORAGE_ENGINE" : "STORAGE_ENGINE";
236  $this->query("SET SESSION " . $storage_engine_var . " = '" . $a_storage_engine . "'");
237  }
query($sql, $a_handle_error=true)
isMysql5_6OrHigher()
check wether current MySQL server is version 5.6.x or higher
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ supportsFulltext()

ilDBMySQL::supportsFulltext ( )

Is fulltext index supported?

Implements ilDBInterface.

Definition at line 486 of file class.ilDBMySQL.php.

487  {
488  return true;
489  }

◆ supportsSlave()

ilDBMySQL::supportsSlave ( )

Supports slave.

Parameters

Implements ilDBInterface.

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

35  {
36  return true;
37  }

◆ unlockTables()

ilDBMySQL::unlockTables ( )

Unlock tables.

Deprecated:
Use ilAtomQuery instead
Returns

Implements ilDBInterface.

Definition at line 580 of file class.ilDBMySQL.php.

References query().

581  {
582  $this->query('UNLOCK TABLES');
583  }
query($sql, $a_handle_error=true)
+ Here is the call graph for this function:

Field Documentation

◆ $max_allowed_packet_size

ilDBMySQL::$max_allowed_packet_size

Definition at line 24 of file class.ilDBMySQL.php.

◆ $slave_active

ilDBMySQL::$slave_active = false
protected

Definition at line 25 of file class.ilDBMySQL.php.

Referenced by getDBSlaveActive().

◆ $use_slave

ilDBMySQL::$use_slave = false
protected

Definition at line 26 of file class.ilDBMySQL.php.


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