ILIAS  Release_4_1_x_branch Revision 61804
 All Data Structures Namespaces Files Functions Variables Groups Pages
MDB2_Driver_Manager_mysql Class Reference
+ Inheritance diagram for MDB2_Driver_Manager_mysql:
+ Collaboration diagram for MDB2_Driver_Manager_mysql:

Public Member Functions

 createDatabase ($name)
 create a new database
 dropDatabase ($name)
 drop an existing database
 createTable ($name, $fields, $options=array())
 create a new table
 alterTable ($name, $changes, $check)
 alter an existing table
 listDatabases ()
 list all databases
 listUsers ()
 list all users
 listFunctions ()
 list all functions in the current database
 listTableTriggers ($table=null)
 list all triggers in the database that reference a given table
 listTables ($database=null)
 list all tables in the current database
 listViews ($database=null)
 list all views in the current database
 listTableFields ($table)
 list all fields in a table in the current database
 createIndex ($table, $name, $definition)
 Get the stucture of a field into an array.
 dropIndex ($table, $name)
 drop existing index
 listTableIndexes ($table)
 list all indexes in a table
 createConstraint ($table, $name, $definition)
 create a constraint on a table
 dropConstraint ($table, $name, $primary=false)
 drop existing constraint
 listTableConstraints ($table)
 list all constraints in a table
 createSequence ($seq_name, $start=1, $options=array())
 create sequence
 dropSequence ($seq_name)
 drop existing sequence
 listSequences ($database=null)
 list all sequences in the current database
- Public Member Functions inherited from MDB2_Driver_Manager_Common
 getFieldDeclarationList ($fields)
 Get declaration of a number of field in bulk.
 _fixSequenceName ($sqn, $check=false)
 Removes any formatting in an sequence name using the 'seqname_format' option.
 _fixIndexName ($idx)
 Removes any formatting in an index name using the 'idxname_format' option.
 _getCreateTableQuery ($name, $fields, $options=array())
 Create a basic SQL query for a new table creation.
 _getTemporaryTableQuery ()
 A method to return the required SQL string that fits between CREATE ...
 dropTable ($name)
 drop an existing table
 listTableViews ($table)
 list the views in the database that reference a given table
 createSequence ($seq_name, $start=1)
 create sequence
- Public Member Functions inherited from MDB2_Module_Common
 __construct ($db_index)
 Constructor.
 MDB2_Module_Common ($db_index)
 PHP 4 Constructor.
getDBInstance ()
 Get the instance of MDB2 associated with the module instance.

Additional Inherited Members

- Data Fields inherited from MDB2_Module_Common
 $db_index

Detailed Description

Definition at line 57 of file mysql.php.

Member Function Documentation

MDB2_Driver_Manager_mysql::alterTable (   $name,
  $changes,
  $check 
)

alter an existing table

Parameters
string$namename of the table that is intended to be changed.
array$changesassociative array that contains the details of each type of change that is intended to be performed. The types of changes that are currently supported are defined as follows:

name

New name for the table.

add

Associative array with the names of fields to be added as
 indexes of the array. The value of each entry of the array
 should be set to another associative array with the properties
 of the fields to be added. The properties of the fields should
 be the same as defined by the MDB2 parser.

remove

Associative array with the names of fields to be removed as indexes
 of the array. Currently the values assigned to each entry are ignored.
 An empty array should be used for future compatibility.

rename

Associative array with the names of fields to be renamed as indexes
 of the array. The value of each entry of the array should be set to
 another associative array with the entry named name with the new
 field name and the entry named Declaration that is expected to contain
 the portion of the field declaration already in DBMS specific SQL code
 as it is used in the CREATE TABLE statement.

change

Associative array with the names of the fields to be changed as indexes
 of the array. Keep in mind that if it is intended to change either the
 name of a field and any other properties, the change array entries
 should have the new names of the fields as array indexes.

The value of each entry of the array should be set to another associative
 array with the properties of the fields to that are meant to be changed as
 array entries. These entries should be assigned to the new values of the
 respective properties. The properties of the fields should be the same
 as defined by the MDB2 parser.

Example array( 'name' => 'userlist', 'add' => array( 'quota' => array( 'type' => 'integer', 'unsigned' => 1 ) ), 'remove' => array( 'file_limit' => array(), 'time_limit' => array() ), 'change' => array( 'name' => array( 'length' => '20', 'definition' => array( 'type' => 'text', 'length' => 20, ), ) ), 'rename' => array( 'sex' => array( 'name' => 'gender', 'definition' => array( 'type' => 'text', 'length' => 1, 'default' => 'M', ), ) ) )

Parameters
boolean$checkindicates whether the function should just check if the DBMS driver can perform the requested table alterations if the value is true or actually perform them otherwise. public
Returns
mixed MDB2_OK on success, a MDB2 error on failure

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 284 of file mysql.php.

References $query, MDB2_Module_Common\getDBInstance(), PEAR\isError(), MDB2_ERROR_CANNOT_ALTER, and MDB2_OK.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
foreach ($changes as $change_name => $change) {
switch ($change_name) {
case 'add':
case 'remove':
case 'change':
case 'rename':
case 'name':
break;
default:
return $db->raiseError(MDB2_ERROR_CANNOT_ALTER, null, null,
'change type "'.$change_name.'" not yet supported', __FUNCTION__);
}
}
if ($check) {
return MDB2_OK;
}
$query = '';
if (!empty($changes['name'])) {
$change_name = $db->quoteIdentifier($changes['name'], true);
$query .= 'RENAME TO ' . $change_name;
}
if (!empty($changes['add']) && is_array($changes['add'])) {
foreach ($changes['add'] as $field_name => $field) {
if ($query) {
$query.= ', ';
}
$query.= 'ADD ' . $db->getDeclaration($field['type'], $field_name, $field);
}
}
if (!empty($changes['remove']) && is_array($changes['remove'])) {
foreach ($changes['remove'] as $field_name => $field) {
if ($query) {
$query.= ', ';
}
$field_name = $db->quoteIdentifier($field_name, true);
$query.= 'DROP ' . $field_name;
}
}
$rename = array();
if (!empty($changes['rename']) && is_array($changes['rename'])) {
foreach ($changes['rename'] as $field_name => $field) {
$rename[$field['name']] = $field_name;
}
}
if (!empty($changes['change']) && is_array($changes['change'])) {
foreach ($changes['change'] as $field_name => $field) {
if ($query) {
$query.= ', ';
}
if (isset($rename[$field_name])) {
$old_field_name = $rename[$field_name];
unset($rename[$field_name]);
} else {
$old_field_name = $field_name;
}
$old_field_name = $db->quoteIdentifier($old_field_name, true);
$query.= "CHANGE $old_field_name " . $db->getDeclaration($field['definition']['type'], $field_name, $field['definition']);
}
}
if (!empty($rename) && is_array($rename)) {
foreach ($rename as $rename_name => $renamed_field) {
if ($query) {
$query.= ', ';
}
$field = $changes['rename'][$renamed_field];
$renamed_field = $db->quoteIdentifier($renamed_field, true);
$query.= 'CHANGE ' . $renamed_field . ' ' . $db->getDeclaration($field['definition']['type'], $field['name'], $field['definition']);
}
}
if (!$query) {
return MDB2_OK;
}
$name = $db->quoteIdentifier($name, true);
return $db->exec("ALTER TABLE $name $query");
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::createConstraint (   $table,
  $name,
  $definition 
)

create a constraint on a table

Parameters
string$tablename of the table on which the constraint is to be created
string$namename of the constraint to be created
array$definitionassociative array that defines properties of the constraint to be created. Currently, only one property named FIELDS is supported. This property is also an associative with the names of the constraint fields as array constraints. Each entry of this array is set to another type of associative array that specifies properties of the constraint that are specific to each field.

Example array( 'fields' => array( 'user_name' => array(), 'last_login' => array() ) )

Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 743 of file mysql.php.

References $query, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_ERROR_NEED_MORE_DATA.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$type = '';
$name = $db->quoteIdentifier($db->getIndexName($name), true);
if (!empty($definition['primary'])) {
$type = 'PRIMARY';
$name = 'KEY';
} elseif (!empty($definition['unique'])) {
$type = 'UNIQUE';
}
if (empty($type)) {
return $db->raiseError(MDB2_ERROR_NEED_MORE_DATA, null, null,
'invalid definition, could not create constraint', __FUNCTION__);
}
$table = $db->quoteIdentifier($table, true);
$query = "ALTER TABLE $table ADD $type $name";
$fields = array();
foreach (array_keys($definition['fields']) as $field) {
$fields[] = $db->quoteIdentifier($field, true);
}
$query .= ' ('. implode(', ', $fields) . ')';
return $db->exec($query);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::createDatabase (   $name)

create a new database

Parameters
string$namename of the database that should be created
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 70 of file mysql.php.

References $query, $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_OK.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$name = $db->quoteIdentifier($name, true);
$query = "CREATE DATABASE $name";
$result = $db->exec($query);
return $result;
}
return MDB2_OK;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::createIndex (   $table,
  $name,
  $definition 
)

Get the stucture of a field into an array.

Author
Leoncx
Parameters
string$tablename of the table on which the index is to be created
string$namename of the index to be created
array$definitionassociative array that defines properties of the index to be created. Currently, only one property named FIELDS is supported. This property is also an associative with the names of the index fields as array indexes. Each entry of this array is set to another type of associative array that specifies properties of the index that are specific to each field.

Currently, only the sorting property is supported. It should be used to define the sorting direction of the index. It may be set to either ascending or descending.

Not all DBMS support index sorting direction configuration. The DBMS drivers of those that do not support it ignore this property. Use the function supports() to determine whether the DBMS driver can manage indexes.

Example array( 'fields' => array( 'user_name' => array( 'sorting' => 'ascending' 'length' => 10 ), 'last_login' => array() ) )

Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 624 of file mysql.php.

References $query, MDB2_Module_Common\getDBInstance(), and PEAR\isError().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = $db->quoteIdentifier($table, true);
$name = $db->quoteIdentifier($db->getIndexName($name), true);
$query = "CREATE INDEX $name ON $table";
$fields = array();
foreach ($definition['fields'] as $field => $fieldinfo) {
if (!empty($fieldinfo['length'])) {
$fields[] = $db->quoteIdentifier($field, true) . '(' . $fieldinfo['length'] . ')';
} else {
$fields[] = $db->quoteIdentifier($field, true);
}
}
$query .= ' ('. implode(', ', $fields) . ')';
return $db->exec($query);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::createSequence (   $seq_name,
  $start = 1,
  $options = array() 
)

create sequence

Parameters
string$seq_namename of the sequence to be created
string$startstart value of the sequence; default is 1
array$optionsAn associative array of table options: array( 'comment' => 'Foo', 'charset' => 'utf8', 'collate' => 'utf8_unicode_ci', 'type' => 'innodb', );
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Definition at line 876 of file mysql.php.

References $query, $res, $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_OK.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$sequence_name = $db->quoteIdentifier($db->getSequenceName($seq_name), true);
$seqcol_name = $db->quoteIdentifier($db->options['seqcol_name'], true);
$options_strings = array();
if (!empty($options['comment'])) {
$options_strings['comment'] = 'COMMENT = '.$db->quote($options['comment'], 'text');
}
if (!empty($options['charset'])) {
$options_strings['charset'] = 'DEFAULT CHARACTER SET '.$options['charset'];
if (!empty($options['collate'])) {
$options_strings['charset'].= ' COLLATE '.$options['collate'];
}
}
$type = false;
if (!empty($options['type'])) {
$type = $options['type'];
} elseif ($db->options['default_table_type']) {
$type = $db->options['default_table_type'];
}
if ($type) {
$options_strings[] = "ENGINE = $type";
}
$query = "CREATE TABLE $sequence_name ($seqcol_name INT NOT NULL AUTO_INCREMENT, PRIMARY KEY ($seqcol_name))";
if (!empty($options_strings)) {
$query .= ' '.implode(' ', $options_strings);
}
$res = $db->exec($query);
return $res;
}
if ($start == 1) {
return MDB2_OK;
}
$query = "INSERT INTO $sequence_name ($seqcol_name) VALUES (".($start-1).')';
$res = $db->exec($query);
return MDB2_OK;
}
// Handle error
$result = $db->exec("DROP TABLE $sequence_name");
return $db->raiseError($result, null, null,
'could not drop inconsistent sequence table', __FUNCTION__);
}
return $db->raiseError($res, null, null,
'could not create sequence table', __FUNCTION__);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::createTable (   $name,
  $fields,
  $options = array() 
)

create a new table

Parameters
string$nameName of the database that should be created
array$fieldsAssociative array that contains the definition of each field of the new table The indexes of the array entries are the names of the fields of the table an the array entry values are associative arrays like those that are meant to be passed with the field definitions to get[Type]Declaration() functions. array( 'id' => array( 'type' => 'integer', 'unsigned' => 1 'notnull' => 1 'default' => 0 ), 'name' => array( 'type' => 'text', 'length' => 12 ), 'password' => array( 'type' => 'text', 'length' => 12 ) );
array$optionsAn associative array of table options: array( 'comment' => 'Foo', 'charset' => 'utf8', 'collate' => 'utf8_unicode_ci', 'type' => 'innodb', );
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 150 of file mysql.php.

References $query, MDB2_Driver_Manager_Common\_getCreateTableQuery(), MDB2_Module_Common\getDBInstance(), and PEAR\isError().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = $this->_getCreateTableQuery($name, $fields, $options);
return $query;
}
$options_strings = array();
if (!empty($options['comment'])) {
$options_strings['comment'] = 'COMMENT = '.$db->quote($options['comment'], 'text');
}
if (!empty($options['charset'])) {
$options_strings['charset'] = 'DEFAULT CHARACTER SET '.$options['charset'];
if (!empty($options['collate'])) {
$options_strings['charset'].= ' COLLATE '.$options['collate'];
}
}
$type = false;
if (!empty($options['type'])) {
$type = $options['type'];
} elseif ($db->options['default_table_type']) {
$type = $db->options['default_table_type'];
}
if ($type) {
$options_strings[] = "ENGINE = $type";
}
if (!empty($options_strings)) {
$query .= ' '.implode(' ', $options_strings);
}
return $db->exec($query);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::dropConstraint (   $table,
  $name,
  $primary = false 
)

drop existing constraint

Parameters
string$tablename of table that should be used in method
string$namename of the constraint to be dropped
string$primaryhint if the constraint is primary
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 785 of file mysql.php.

References $query, MDB2_Module_Common\getDBInstance(), and PEAR\isError().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = $db->quoteIdentifier($table, true);
if ($primary || strtolower($name) == 'primary') {
$query = "ALTER TABLE $table DROP PRIMARY KEY";
} else {
$name = $db->quoteIdentifier($db->getIndexName($name), true);
$query = "ALTER TABLE $table DROP INDEX $name";
}
return $db->exec($query);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::dropDatabase (   $name)

drop an existing database

Parameters
string$namename of the database that should be dropped
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 96 of file mysql.php.

References $query, $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_OK.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$name = $db->quoteIdentifier($name, true);
$query = "DROP DATABASE $name";
$result = $db->exec($query);
return $result;
}
return MDB2_OK;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::dropIndex (   $table,
  $name 
)

drop existing index

Parameters
string$tablename of table that should be used in method
string$namename of the index to be dropped
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 657 of file mysql.php.

References MDB2_Module_Common\getDBInstance(), and PEAR\isError().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = $db->quoteIdentifier($table, true);
$name = $db->quoteIdentifier($db->getIndexName($name), true);
return $db->exec("DROP INDEX $name ON $table");
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::dropSequence (   $seq_name)

drop existing sequence

Parameters
string$seq_namename of the sequence to be dropped
Returns
mixed MDB2_OK on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 950 of file mysql.php.

References MDB2_Module_Common\getDBInstance(), and PEAR\isError().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$sequence_name = $db->quoteIdentifier($db->getSequenceName($seq_name), true);
return $db->exec("DROP TABLE $sequence_name");
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listDatabases ( )

list all databases

Returns
mixed array of database names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 385 of file mysql.php.

References $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$result = $db->queryCol('SHOW DATABASES');
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listFunctions ( )

list all functions in the current database

Returns
mixed array of function names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 430 of file mysql.php.

References $query, $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = "SELECT name FROM mysql.proc";
/*
SELECT ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'FUNCTION'
*/
$result = $db->queryCol($query);
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listSequences (   $database = null)

list all sequences in the current database

Parameters
stringdatabase, the current is default
Returns
mixed array of sequence names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 971 of file mysql.php.

References $query, $result, MDB2_Driver_Manager_Common\_fixSequenceName(), MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = "SHOW TABLES";
if (!is_null($database)) {
$query .= " FROM $database";
}
$table_names = $db->queryCol($query);
if (PEAR::isError($table_names)) {
return $table_names;
}
$result = array();
foreach ($table_names as $table_name) {
if ($sqn = $this->_fixSequenceName($table_name, true)) {
$result[] = $sqn;
}
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listTableConstraints (   $table)

list all constraints in a table

Parameters
string$tablename of table that should be used in method
Returns
mixed array of constraint names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 812 of file mysql.php.

References $query, $result, MDB2_Driver_Manager_Common\_fixIndexName(), MDB2_Module_Common\getDBInstance(), PEAR\isError(), MDB2_FETCHMODE_ASSOC, and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$key_name = 'Key_name';
$non_unique = 'Non_unique';
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
if ($db->options['field_case'] == CASE_LOWER) {
$key_name = strtolower($key_name);
$non_unique = strtolower($non_unique);
} else {
$key_name = strtoupper($key_name);
$non_unique = strtoupper($non_unique);
}
}
$table = $db->quoteIdentifier($table, true);
$query = "SHOW INDEX FROM $table";
$indexes = $db->queryAll($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($indexes)) {
return $indexes;
}
$result = array();
foreach ($indexes as $index_data) {
if (!$index_data[$non_unique]) {
if ($index_data[$key_name] !== 'PRIMARY') {
$index = $this->_fixIndexName($index_data[$key_name]);
} else {
$index = 'PRIMARY';
}
if (!empty($index)) {
$result[$index] = true;
}
}
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_change_key_case($result, $db->options['field_case']);
}
return array_keys($result);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listTableFields (   $table)

list all fields in a table in the current database

Parameters
string$tablename of table that should be used in method
Returns
mixed array of field names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 569 of file mysql.php.

References $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$table = $db->quoteIdentifier($table, true);
$result = $db->queryCol("SHOW COLUMNS FROM $table");
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listTableIndexes (   $table)

list all indexes in a table

Parameters
string$tablename of table that should be used in method
Returns
mixed array of index names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 679 of file mysql.php.

References $query, $result, MDB2_Driver_Manager_Common\_fixIndexName(), MDB2_Module_Common\getDBInstance(), PEAR\isError(), MDB2_FETCHMODE_ASSOC, and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$key_name = 'Key_name';
$non_unique = 'Non_unique';
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
if ($db->options['field_case'] == CASE_LOWER) {
$key_name = strtolower($key_name);
$non_unique = strtolower($non_unique);
} else {
$key_name = strtoupper($key_name);
$non_unique = strtoupper($non_unique);
}
}
$table = $db->quoteIdentifier($table, true);
$query = "SHOW INDEX FROM $table";
$indexes = $db->queryAll($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($indexes)) {
return $indexes;
}
$result = array();
foreach ($indexes as $index_data) {
if ($index_data[$non_unique] && ($index = $this->_fixIndexName($index_data[$key_name]))) {
$result[$index] = true;
}
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_change_key_case($result, $db->options['field_case']);
}
return array_keys($result);
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listTables (   $database = null)

list all tables in the current database

Parameters
stringdatabase, the current is default
Returns
mixed array of table names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 495 of file mysql.php.

References $query, $result, MDB2_Driver_Manager_Common\_fixSequenceName(), MDB2_Module_Common\getDBInstance(), PEAR\isError(), MDB2_FETCHMODE_ORDERED, and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = "SHOW /*!50002 FULL*/ TABLES";
if (!is_null($database)) {
$query .= " FROM $database";
}
$query.= "/*!50002 WHERE Table_type = 'BASE TABLE'*/";
$table_names = $db->queryAll($query, null, MDB2_FETCHMODE_ORDERED);
if (PEAR::isError($table_names)) {
return $table_names;
}
$result = array();
foreach ($table_names as $table) {
if (!$this->_fixSequenceName($table[0], true)) {
$result[] = $table[0];
}
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listTableTriggers (   $table = null)

list all triggers in the database that reference a given table

Parameters
stringtable for which all referenced triggers should be found
Returns
mixed array of trigger names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 463 of file mysql.php.

References $query, $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = 'SHOW TRIGGERS';
if (!is_null($table)) {
$table = $db->quote($table, 'text');
$query .= " LIKE $table";
}
$result = $db->queryCol($query);
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listUsers ( )

list all users

Returns
mixed array of user names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 411 of file mysql.php.

References MDB2_Module_Common\getDBInstance(), and PEAR\isError().

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
return $db->queryCol('SELECT DISTINCT USER FROM mysql.USER');
}

+ Here is the call graph for this function:

MDB2_Driver_Manager_mysql::listViews (   $database = null)

list all views in the current database

Parameters
stringdatabase, the current is default
Returns
mixed array of view names on success, a MDB2 error on failure public

Reimplemented from MDB2_Driver_Manager_Common.

Definition at line 535 of file mysql.php.

References $query, $result, MDB2_Module_Common\getDBInstance(), PEAR\isError(), and MDB2_PORTABILITY_FIX_CASE.

{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$query = 'SHOW FULL TABLES';
if (!is_null($database)) {
$query.= " FROM $database";
}
$query.= " WHERE Table_type = 'VIEW'";
$result = $db->queryCol($query);
return $result;
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$result = array_map(($db->options['field_case'] == CASE_LOWER ? 'strtolower' : 'strtoupper'), $result);
}
return $result;
}

+ Here is the call graph for this function:


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