本文整理汇总了PHP中PMA\libraries\Table::isView方法的典型用法代码示例。如果您正苦于以下问题:PHP Table::isView方法的具体用法?PHP Table::isView怎么用?PHP Table::isView使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PMA\libraries\Table
的用法示例。
在下文中一共展示了Table::isView方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _setMessageInformation
/**
* Set the content that needs to be shown in message
*
* @param string $sorted_column_message the message for sorted column
* @param array $analyzed_sql_results the analyzed query
* @param integer $total the total number of rows returned by
* the SQL query without any
* programmatically appended LIMIT clause
* @param integer $pos_next the offset for next page
* @param string $pre_count the string renders before row count
* @param string $after_count the string renders after row count
*
* @return Message $message an object of Message
*
* @access private
*
* @see getTable()
*/
private function _setMessageInformation($sorted_column_message, $analyzed_sql_results, $total, $pos_next, $pre_count, $after_count)
{
$unlim_num_rows = $this->__get('unlim_num_rows');
// To use in isset()
if (!empty($analyzed_sql_results['statement']->limit)) {
$first_shown_rec = $analyzed_sql_results['statement']->limit->offset;
$row_count = $analyzed_sql_results['statement']->limit->rowCount;
if ($row_count < $total) {
$last_shown_rec = $first_shown_rec + $row_count - 1;
} else {
$last_shown_rec = $first_shown_rec + $total - 1;
}
} elseif ($_SESSION['tmpval']['max_rows'] == self::ALL_ROWS || $pos_next > $total) {
$first_shown_rec = $_SESSION['tmpval']['pos'];
$last_shown_rec = $total - 1;
} else {
$first_shown_rec = $_SESSION['tmpval']['pos'];
$last_shown_rec = $pos_next - 1;
}
$table = new Table($this->__get('table'), $this->__get('db'));
if ($table->isView() && $total == $GLOBALS['cfg']['MaxExactCountViews']) {
$message = Message::notice(__('This view has at least this number of rows. ' . 'Please refer to %sdocumentation%s.'));
$message->addParam('[doc@cfg_MaxExactCount]');
$message->addParam('[/doc]');
$message_view_warning = Util::showHint($message);
} else {
$message_view_warning = false;
}
$message = Message::success(__('Showing rows %1s - %2s'));
$message->addParam($first_shown_rec);
if ($message_view_warning !== false) {
$message->addParam('... ' . $message_view_warning, false);
} else {
$message->addParam($last_shown_rec);
}
$message->addMessage('(');
if ($message_view_warning === false) {
if (isset($unlim_num_rows) && $unlim_num_rows != $total) {
$message_total = Message::notice($pre_count . __('%1$d total, %2$d in query'));
$message_total->addParam($total);
$message_total->addParam($unlim_num_rows);
} else {
$message_total = Message::notice($pre_count . __('%d total'));
$message_total->addParam($total);
}
if (!empty($after_count)) {
$message_total->addMessage($after_count);
}
$message->addMessage($message_total, '');
$message->addMessage(', ', '');
}
$message_qt = Message::notice(__('Query took %01.4f seconds.') . ')');
$message_qt->addParam($this->__get('querytime'));
$message->addMessage($message_qt, '');
if (!is_null($sorted_column_message)) {
$message->addMessage($sorted_column_message, '');
}
return $message;
}
示例2: testIsView
/**
* Test for isView
*
* @return void
*/
public function testIsView()
{
$table = new Table(null, null);
$this->assertEquals(false, $table->isView());
//validate that it is the same as DBI fetchResult
$table = new Table('PMA_BookMark', 'PMA');
$this->assertEquals(true, $table->isView());
$table = new Table('PMA_BookMark_2', 'PMA');
$this->assertEquals(false, $table->isView());
}
示例3: PMA_exportTable
/**
* Export at the table level
*
* @param string $db the database to export
* @param string $table the table to export
* @param string $whatStrucOrData structure or data or both
* @param ExportPlugin $export_plugin the selected export plugin
* @param string $crlf end of line character(s)
* @param string $err_url the URL in case of error
* @param string $export_type the export type
* @param bool $do_relation whether to export relation info
* @param bool $do_comments whether to add comments
* @param bool $do_mime whether to add MIME info
* @param bool $do_dates whether to add dates
* @param string $allrows whether "dump all rows" was ticked
* @param string $limit_to upper limit
* @param string $limit_from starting limit
* @param string $sql_query query for which exporting is requested
* @param array $aliases Alias information for db/table/column
*
* @return void
*/
function PMA_exportTable($db, $table, $whatStrucOrData, $export_plugin, $crlf, $err_url, $export_type, $do_relation, $do_comments, $do_mime, $do_dates, $allrows, $limit_to, $limit_from, $sql_query, $aliases)
{
$db_alias = !empty($aliases[$db]['alias']) ? $aliases[$db]['alias'] : '';
if (!$export_plugin->exportDBHeader($db, $db_alias)) {
return;
}
if (isset($allrows) && $allrows == '0' && $limit_to > 0 && $limit_from >= 0) {
$add_query = ' LIMIT ' . ($limit_from > 0 ? $limit_from . ', ' : '') . $limit_to;
} else {
$add_query = '';
}
$_table = new Table($table, $db);
$is_view = $_table->isView();
if ($whatStrucOrData == 'structure' || $whatStrucOrData == 'structure_and_data') {
if ($is_view) {
if (isset($GLOBALS['sql_create_view'])) {
if (!$export_plugin->exportStructure($db, $table, $crlf, $err_url, 'create_view', $export_type, $do_relation, $do_comments, $do_mime, $do_dates, $aliases)) {
return;
}
}
} else {
if (isset($GLOBALS['sql_create_table'])) {
if (!$export_plugin->exportStructure($db, $table, $crlf, $err_url, 'create_table', $export_type, $do_relation, $do_comments, $do_mime, $do_dates, $aliases)) {
return;
}
}
}
}
// If this is an export of a single view, we have to export data;
// for example, a PDF report
// if it is a merge table, no data is exported
if ($whatStrucOrData == 'data' || $whatStrucOrData == 'structure_and_data') {
if (!empty($sql_query)) {
// only preg_replace if needed
if (!empty($add_query)) {
// remove trailing semicolon before adding a LIMIT
$sql_query = preg_replace('%;\\s*$%', '', $sql_query);
}
$local_query = $sql_query . $add_query;
$GLOBALS['dbi']->selectDb($db);
} else {
// Data is exported only for Non-generated columns
$tableObj = new PMA\libraries\Table($table, $db);
$nonGeneratedCols = $tableObj->getNonGeneratedColumns(true);
$local_query = 'SELECT ' . implode(', ', $nonGeneratedCols) . ' FROM ' . PMA\libraries\Util::backquote($db) . '.' . PMA\libraries\Util::backquote($table) . $add_query;
}
if (!$export_plugin->exportData($db, $table, $crlf, $err_url, $local_query, $aliases)) {
return;
}
}
// now export the triggers (needs to be done after the data because
// triggers can modify already imported tables)
if (isset($GLOBALS['sql_create_trigger']) && ($whatStrucOrData == 'structure' || $whatStrucOrData == 'structure_and_data')) {
if (!$export_plugin->exportStructure($db, $table, $crlf, $err_url, 'triggers', $export_type, $do_relation, $do_comments, $do_mime, $do_dates, $aliases)) {
return;
}
}
if (!$export_plugin->exportDBFooter($db)) {
return;
}
if (isset($GLOBALS['sql_metadata'])) {
// Types of metadata to export.
// In the future these can be allowed to be selected by the user
$metadataTypes = PMA_getMetadataTypesToExport();
$export_plugin->exportMetadata($db, $table, $metadataTypes);
}
}
示例4: moveCopy
/**
* Copies or renames table
*
* @param string $source_db source database
* @param string $source_table source table
* @param string $target_db target database
* @param string $target_table target table
* @param string $what what to be moved or copied (data, dataonly)
* @param bool $move whether to move
* @param string $mode mode
*
* @return bool true if success, false otherwise
*/
public static function moveCopy($source_db, $source_table, $target_db, $target_table, $what, $move, $mode)
{
global $err_url;
// Try moving the tables directly, using native `RENAME` statement.
if ($move && $what == 'data') {
$tbl = new Table($source_table, $source_db);
if ($tbl->rename($target_table, $target_db)) {
$GLOBALS['message'] = $tbl->getLastMessage();
return true;
}
}
// Setting required export settings.
$GLOBALS['sql_backquotes'] = 1;
$GLOBALS['asfile'] = 1;
// Ensuring the target database is valid.
if (!$GLOBALS['pma']->databases->exists($source_db, $target_db)) {
if (!$GLOBALS['pma']->databases->exists($source_db)) {
$GLOBALS['message'] = Message::rawError(sprintf(__('Source database `%s` was not found!'), htmlspecialchars($source_db)));
}
if (!$GLOBALS['pma']->databases->exists($target_db)) {
$GLOBALS['message'] = Message::rawError(sprintf(__('Target database `%s` was not found!'), htmlspecialchars($target_db)));
}
return false;
}
/**
* The full name of source table, quoted.
* @var string $source
*/
$source = Util::backquote($source_db) . '.' . Util::backquote($source_table);
// If the target database is not specified, the operation is taking
// place in the same database.
if (!isset($target_db) || !mb_strlen($target_db)) {
$target_db = $source_db;
}
// Selecting the database could avoid some problems with replicated
// databases, when moving table from replicated one to not replicated one.
$GLOBALS['dbi']->selectDb($target_db);
/**
* The full name of target table, quoted.
* @var string $target
*/
$target = Util::backquote($target_db) . '.' . Util::backquote($target_table);
// No table is created when this is a data-only operation.
if ($what != 'dataonly') {
include_once "libraries/plugin_interface.lib.php";
/**
* Instance used for exporting the current structure of the table.
*
* @var \PMA\libraries\plugins\export\ExportSql
*/
$export_sql_plugin = PMA_getPlugin("export", "sql", 'libraries/plugins/export/', array('export_type' => 'table', 'single_table' => false));
$no_constraints_comments = true;
$GLOBALS['sql_constraints_query'] = '';
// set the value of global sql_auto_increment variable
if (isset($_POST['sql_auto_increment'])) {
$GLOBALS['sql_auto_increment'] = $_POST['sql_auto_increment'];
}
/**
* The old structure of the table..
* @var string $sql_structure
*/
$sql_structure = $export_sql_plugin->getTableDef($source_db, $source_table, "\n", $err_url, false, false);
unset($no_constraints_comments);
// -----------------------------------------------------------------
// Phase 0: Preparing structures used.
/**
* The destination where the table is moved or copied to.
* @var Expression
*/
$destination = new Expression($target_db, $target_table, '');
// Find server's SQL mode so the builder can generate correct
// queries.
// One of the options that alters the behaviour is `ANSI_QUOTES`.
Context::setMode($GLOBALS['dbi']->fetchValue("SELECT @@sql_mode"));
// -----------------------------------------------------------------
// Phase 1: Dropping existent element of the same name (if exists
// and required).
if (isset($_REQUEST['drop_if_exists']) && $_REQUEST['drop_if_exists'] == 'true') {
/**
* Drop statement used for building the query.
* @var DropStatement $statement
*/
$statement = new DropStatement();
$tbl = new Table($target_db, $target_table);
$statement->options = new OptionsArray(array($tbl->isView() ? 'VIEW' : 'TABLE', 'IF EXISTS'));
$statement->fields = array($destination);
// Building the query.
//.........这里部分代码省略.........
示例5: PMA_buildSQL
//.........这里部分代码省略.........
}
/* Don't put quotes around NULL fields */
if (!strcmp($tables[$i][ROWS][$j][$k], 'NULL')) {
$is_varchar = false;
}
$tempSQLStr .= $is_varchar ? "'" : "";
$tempSQLStr .= PMA\libraries\Util::sqlAddSlashes((string) $tables[$i][ROWS][$j][$k]);
$tempSQLStr .= $is_varchar ? "'" : "";
}
if ($k != $num_cols - 1) {
$tempSQLStr .= ", ";
}
if ($col_count == $num_cols - 1) {
$col_count = 0;
} else {
$col_count++;
}
/* Delete the cell after we are done with it */
unset($tables[$i][ROWS][$j][$k]);
}
$tempSQLStr .= ")";
if ($j != $num_rows - 1) {
$tempSQLStr .= ",\n ";
}
$col_count = 0;
/* Delete the row after we are done with it */
unset($tables[$i][ROWS][$j]);
}
$tempSQLStr .= ";";
/**
* Each SQL statement is executed immediately
* after it is formed so that we don't have
* to store them in a (possibly large) buffer
*/
PMA_importRunQuery($tempSQLStr, $tempSQLStr);
}
/* No longer needed */
unset($tempSQLStr);
/**
* A work in progress
*/
/* Add the viewable structures from $additional_sql
* to $tables so they are also displayed
*/
$view_pattern = '@VIEW `[^`]+`\\.`([^`]+)@';
$table_pattern = '@CREATE TABLE IF NOT EXISTS `([^`]+)`@';
/* Check a third pattern to make sure its not a "USE `db_name`;" statement */
$regs = array();
$inTables = false;
$additional_sql_len = count($additional_sql);
for ($i = 0; $i < $additional_sql_len; ++$i) {
preg_match($view_pattern, $additional_sql[$i], $regs);
if (count($regs) == 0) {
preg_match($table_pattern, $additional_sql[$i], $regs);
}
if (count($regs)) {
for ($n = 0; $n < $num_tables; ++$n) {
if (!strcmp($regs[1], $tables[$n][TBL_NAME])) {
$inTables = true;
break;
}
}
if (!$inTables) {
$tables[] = array(TBL_NAME => $regs[1]);
}
}
/* Reset the array */
$regs = array();
$inTables = false;
}
$params = array('db' => (string) $db_name);
$db_url = 'db_structure.php' . PMA_URL_getCommon($params);
$db_ops_url = 'db_operations.php' . PMA_URL_getCommon($params);
$message = '<br /><br />';
$message .= '<strong>' . __('The following structures have either been created or altered. Here you can:') . '</strong><br />';
$message .= '<ul><li>' . __("View a structure's contents by clicking on its name.") . '</li>';
$message .= '<li>' . __('Change any of its settings by clicking the corresponding "Options" link.') . '</li>';
$message .= '<li>' . __('Edit structure by following the "Structure" link.') . '</li>';
$message .= sprintf('<br /><li><a href="%s" title="%s">%s</a> (<a href="%s" title="%s">' . __('Options') . '</a>)</li>', $db_url, sprintf(__('Go to database: %s'), htmlspecialchars(PMA\libraries\Util::backquote($db_name))), htmlspecialchars($db_name), $db_ops_url, sprintf(__('Edit settings for %s'), htmlspecialchars(PMA\libraries\Util::backquote($db_name))));
$message .= '<ul>';
unset($params);
$num_tables = count($tables);
for ($i = 0; $i < $num_tables; ++$i) {
$params = array('db' => (string) $db_name, 'table' => (string) $tables[$i][TBL_NAME]);
$tbl_url = 'sql.php' . PMA_URL_getCommon($params);
$tbl_struct_url = 'tbl_structure.php' . PMA_URL_getCommon($params);
$tbl_ops_url = 'tbl_operations.php' . PMA_URL_getCommon($params);
unset($params);
$_table = new Table($tables[$i][TBL_NAME], $db_name);
if (!$_table->isView()) {
$message .= sprintf('<li><a href="%s" title="%s">%s</a> (<a href="%s" title="%s">' . __('Structure') . '</a>) (<a href="%s" title="%s">' . __('Options') . '</a>)</li>', $tbl_url, sprintf(__('Go to table: %s'), htmlspecialchars(PMA\libraries\Util::backquote($tables[$i][TBL_NAME]))), htmlspecialchars($tables[$i][TBL_NAME]), $tbl_struct_url, sprintf(__('Structure of %s'), htmlspecialchars(PMA\libraries\Util::backquote($tables[$i][TBL_NAME]))), $tbl_ops_url, sprintf(__('Edit settings for %s'), htmlspecialchars(PMA\libraries\Util::backquote($tables[$i][TBL_NAME]))));
} else {
$message .= sprintf('<li><a href="%s" title="%s">%s</a></li>', $tbl_url, sprintf(__('Go to view: %s'), htmlspecialchars(PMA\libraries\Util::backquote($tables[$i][TBL_NAME]))), htmlspecialchars($tables[$i][TBL_NAME]));
}
}
$message .= '</ul></ul>';
global $import_notice;
$import_notice = $message;
unset($tables);
}