mirror of
https://github.com/atlanticbiomedical/portal-legacy.git
synced 2025-07-02 01:47:28 -04:00
initial commit
This commit is contained in:
59
html/phpmyad/libraries/parse_analyze.lib.php
Normal file
59
html/phpmyad/libraries/parse_analyze.lib.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
$GLOBALS['unparsed_sql'] = $sql_query;
|
||||
$parsed_sql = PMA_SQP_parse($sql_query);
|
||||
$analyzed_sql = PMA_SQP_analyze($parsed_sql);
|
||||
|
||||
// for bug 780516: now that we use case insensitive preg_match
|
||||
// or flags from the analyser, do not put back the reformatted query
|
||||
// into $sql_query, to make this kind of query work without
|
||||
// capitalizing keywords:
|
||||
//
|
||||
// CREATE TABLE SG_Persons (
|
||||
// id int(10) unsigned NOT NULL auto_increment,
|
||||
// first varchar(64) NOT NULL default '',
|
||||
// PRIMARY KEY (`id`)
|
||||
// )
|
||||
|
||||
// check for a real SELECT ... FROM
|
||||
$is_select = isset($analyzed_sql[0]['queryflags']['select_from']);
|
||||
|
||||
// If the query is a Select, extract the db and table names and modify
|
||||
// $db and $table, to have correct page headers, links and left frame.
|
||||
// db and table name may be enclosed with backquotes, db is optionnal,
|
||||
// query may contain aliases.
|
||||
|
||||
/**
|
||||
* @todo if there are more than one table name in the Select:
|
||||
* - do not extract the first table name
|
||||
* - do not show a table name in the page header
|
||||
* - do not display the sub-pages links)
|
||||
*/
|
||||
if ($is_select) {
|
||||
$prev_db = $db;
|
||||
if (isset($analyzed_sql[0]['table_ref'][0]['table_true_name'])) {
|
||||
$table = $analyzed_sql[0]['table_ref'][0]['table_true_name'];
|
||||
}
|
||||
if (isset($analyzed_sql[0]['table_ref'][0]['db'])
|
||||
&& strlen($analyzed_sql[0]['table_ref'][0]['db'])) {
|
||||
$db = $analyzed_sql[0]['table_ref'][0]['db'];
|
||||
} else {
|
||||
$db = $prev_db;
|
||||
}
|
||||
// Nijel: don't change reload, if we already decided to reload in import
|
||||
if (empty($reload) && empty($GLOBALS['is_ajax_request'])) {
|
||||
$reload = ($db == $prev_db) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user