本文整理汇总了PHP中PMA_REL_renameTable函数的典型用法代码示例。如果您正苦于以下问题:PHP PMA_REL_renameTable函数的具体用法?PHP PMA_REL_renameTable怎么用?PHP PMA_REL_renameTable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PMA_REL_renameTable函数的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: rename
/**
* renames table
*
* @param string $new_name new table name
* @param string $new_db new database name
*
* @return bool success
*/
function rename($new_name, $new_db = null)
{
if (null !== $new_db && $new_db !== $this->getDbName()) {
// Ensure the target is valid
if (!$GLOBALS['pma']->databases->exists($new_db)) {
$this->errors[] = __('Invalid database') . ': ' . $new_db;
return false;
}
} else {
$new_db = $this->getDbName();
}
$new_table = new PMA_Table($new_name, $new_db);
if ($this->getFullName() === $new_table->getFullName()) {
return true;
}
if (!PMA_Table::isValidName($new_name)) {
$this->errors[] = __('Invalid table name') . ': ' . $new_table->getFullName();
return false;
}
// If the table is moved to a different database drop its triggers first
$triggers = PMA_DBI_get_triggers($this->getDbName(), $this->getName(), '');
$handle_triggers = $this->getDbName() != $new_db && $triggers;
if ($handle_triggers) {
foreach ($triggers as $trigger) {
$sql = 'DROP TRIGGER IF EXISTS ' . PMA_Util::backquote($this->getDbName()) . '.' . PMA_Util::backquote($trigger['name']) . ';';
PMA_DBI_query($sql);
}
}
/*
* tested also for a view, in MySQL 5.0.92, 5.1.55 and 5.5.13
*/
$GLOBALS['sql_query'] = '
RENAME TABLE ' . $this->getFullName(true) . '
TO ' . $new_table->getFullName(true) . ';';
// I don't think a specific error message for views is necessary
if (!PMA_DBI_query($GLOBALS['sql_query'])) {
// Restore triggers in the old database
if ($handle_triggers) {
PMA_DBI_select_db($this->getDbName());
foreach ($triggers as $trigger) {
PMA_DBI_query($trigger['create']);
}
}
$this->errors[] = sprintf(__('Error renaming table %1$s to %2$s'), $this->getFullName(), $new_table->getFullName());
return false;
}
$old_name = $this->getName();
$old_db = $this->getDbName();
$this->setName($new_name);
$this->setDbName($new_db);
// Renable table in configuration storage
PMA_REL_renameTable($old_db, $new_db, $old_name, $new_name);
$this->messages[] = sprintf(__('Table %1$s has been renamed to %2$s.'), htmlspecialchars($old_name), htmlspecialchars($new_name));
return true;
}
示例2: rename
/**
* renames table
*
* @param string $new_name new table name
* @param string $new_db new database name
*
* @return bool success
*/
function rename($new_name, $new_db = null)
{
$lowerCaseTableNames = Util::cacheGet('lower_case_table_names', function () {
return $GLOBALS['dbi']->fetchValue("SELECT @@lower_case_table_names");
});
if ($lowerCaseTableNames) {
$new_name = strtolower($new_name);
}
if (null !== $new_db && $new_db !== $this->getDbName()) {
// Ensure the target is valid
if (!$GLOBALS['pma']->databases->exists($new_db)) {
$this->errors[] = __('Invalid database:') . ' ' . $new_db;
return false;
}
} else {
$new_db = $this->getDbName();
}
$new_table = new Table($new_name, $new_db);
if ($this->getFullName() === $new_table->getFullName()) {
return true;
}
if (!Table::isValidName($new_name)) {
$this->errors[] = __('Invalid table name:') . ' ' . $new_table->getFullName();
return false;
}
// If the table is moved to a different database drop its triggers first
$triggers = $this->_dbi->getTriggers($this->getDbName(), $this->getName(), '');
$handle_triggers = $this->getDbName() != $new_db && $triggers;
if ($handle_triggers) {
foreach ($triggers as $trigger) {
$sql = 'DROP TRIGGER IF EXISTS ' . Util::backquote($this->getDbName()) . '.' . Util::backquote($trigger['name']) . ';';
$this->_dbi->query($sql);
}
}
/*
* tested also for a view, in MySQL 5.0.92, 5.1.55 and 5.5.13
*/
$GLOBALS['sql_query'] = '
RENAME TABLE ' . $this->getFullName(true) . '
TO ' . $new_table->getFullName(true) . ';';
// I don't think a specific error message for views is necessary
if (!$this->_dbi->query($GLOBALS['sql_query'])) {
// Restore triggers in the old database
if ($handle_triggers) {
$this->_dbi->selectDb($this->getDbName());
foreach ($triggers as $trigger) {
$this->_dbi->query($trigger['create']);
}
}
$this->errors[] = sprintf(__('Failed to rename table %1$s to %2$s!'), $this->getFullName(), $new_table->getFullName());
return false;
}
$old_name = $this->getName();
$old_db = $this->getDbName();
$this->_name = $new_name;
$this->_db_name = $new_db;
// Renable table in configuration storage
PMA_REL_renameTable($old_db, $new_db, $old_name, $new_name);
$this->messages[] = sprintf(__('Table %1$s has been renamed to %2$s.'), htmlspecialchars($old_name), htmlspecialchars($new_name));
return true;
}