bug 434608

This commit is contained in:
Marc Delisle
2001-06-27 14:17:59 +00:00
parent e66e54abcb
commit d4e5d0316f
6 changed files with 35 additions and 21 deletions

View File

@@ -5,6 +5,10 @@ phpMyAdmin - Changelog
$Id$
$Source$
2001-06-27 Marc Delisle <lem9@users.sourceforge.net>
* bug 434608: support db names with special characters (MySQL >= 3.23.6)
2001-06-27 Steve Alberty <alberty@neptunlabs.de>
* lib.inc.php3: speedup get_table_content for tbl_dump
* tbl_dump: fixed a big bug

View File

@@ -6,9 +6,9 @@ require("./grab_globals.inc.php3");
require("./header.inc.php3");
$result = mysql_query("CREATE DATABASE $db") or mysql_die();
$result = mysql_query("CREATE DATABASE " . db_name($db)) or mysql_die();
$message = "$strDatabase $db $strHasBeenCreated";
$message = "$strDatabase " . db_name($db) . " $strHasBeenCreated";
require("./db_details.php3");
?>

View File

@@ -19,7 +19,7 @@ $num_tables = @mysql_numrows($tables);
if ($num_tables>0 && MYSQL_MAJOR_VERSION>=3.23 && intval(MYSQL_MINOR_VERSION)>=3){
// Special speedup for newer MySQL Versions
if ($cfgSkipLockedTables==true && MYSQL_MAJOR_VERSION==3.23 && intval(MYSQL_MINOR_VERSION)>=30){ // in 4.0 format changed
$query="SHOW OPEN TABLES from $db";
$query="SHOW OPEN TABLES from " . db_name($db);
$result=mysql_query($query);
// Blending out tables in use
if ($result!=false && mysql_num_rows($result)>0){
@@ -32,12 +32,12 @@ if ($num_tables>0 && MYSQL_MAJOR_VERSION>=3.23 && intval(MYSQL_MINOR_VERSION)>=3
mysql_free_result($result);
if (isset($sot_cache)){
$query="show tables from $db";
$query="show tables from " . db_name($db);
$result=mysql_query($query);
if ($result!=false && mysql_num_rows($result)>0){
while ($tmp=mysql_fetch_array($result)){
if (!isset($sot_cache[$tmp[0]])){
$sts_result=mysql_query("show table status from $db like '".AddSlashes($tmp[0])."'");
$sts_result=mysql_query("show table status from " . db_name($db) . " like '".AddSlashes($tmp[0])."'");
$sts_tmp=mysql_fetch_array($sts_result);
$tbl_cache[]=$sts_tmp;
}
@@ -53,7 +53,7 @@ if ($num_tables>0 && MYSQL_MAJOR_VERSION>=3.23 && intval(MYSQL_MINOR_VERSION)>=3
}
}
if (!isset($sot_ready)){
$result=mysql_query("show table status from $db");
$result=mysql_query("show table status from " .db_name($db));
if ($result!=false && mysql_num_rows($result)>0){
while ($sts_tmp=mysql_fetch_array($result)){
$tbl_cache[]=$sts_tmp;
@@ -269,7 +269,7 @@ if($cfgBookmark['db'] && $cfgBookmark['table'])
</form>
<li>
<a href="sql.php3?server=<?php echo $server;?>&lang=<?php echo $lang;?>&db=<?php echo $db;?>&sql_query=<?php echo urlencode("DROP DATABASE $db");?>&zero_rows=<?php echo urlencode($strDatabase." ".$db." ".$strHasBeenDropped);?>&goto=main.php3&reload=true"><?php echo $strDropDB." ".$db;?></a> <?php print show_docu("manual_Reference.html#DROP_DATABASE");?>
<a href="sql.php3?server=<?php echo $server;?>&lang=<?php echo $lang;?>&db=<?php echo $db;?>&sql_query=<?php echo urlencode("DROP DATABASE " .db_name($db));?>&zero_rows=<?php echo urlencode($strDatabase." ".db_name($db)." ".$strHasBeenDropped);?>&goto=main.php3&reload=true"><?php echo $strDropDB." ".$db;?></a> <?php print show_docu("manual_Reference.html#DROP_DATABASE");?>
</ul>
</div>
<?php

View File

@@ -303,7 +303,7 @@ function display_table ($dt_result, $is_simple = false) {
$primary = false;
if(!$is_simple && !empty($table) && !empty($db)) {
$result = mysql_query("SELECT COUNT(*) as total FROM $db.$table") or mysql_die();
$result = mysql_query("SELECT COUNT(*) as total FROM " .db_name($db).".$table") or mysql_die();
$row = mysql_fetch_array($result);
$total = $row["total"];
}
@@ -486,7 +486,7 @@ function get_table_def($db, $table, $crlf)
// modified by Lem9 to allow older MySQL versions to continue to work
if(MYSQL_MAJOR_VERSION == "3.23" && intval(MYSQL_MINOR_VERSION) > 20){
$result=mysql_query("show create table $db.$table");
$result=mysql_query("show create table " .db_name($db).".$table");
if ($result!=false && mysql_num_rows($result)>0){
$tmpres=mysql_fetch_array($result);
$tmp=$tmpres[1];
@@ -497,7 +497,7 @@ function get_table_def($db, $table, $crlf)
$schema_create .= "CREATE TABLE $table ($crlf";
$result = mysql_query("SHOW FIELDS FROM $db.$table") or mysql_die();
$result = mysql_query("SHOW FIELDS FROM " .db_name($db).".$table") or mysql_die();
while($row = mysql_fetch_array($result))
{
$schema_create .= " $row[Field] $row[Type]";
@@ -511,7 +511,7 @@ function get_table_def($db, $table, $crlf)
$schema_create .= ",$crlf";
}
$schema_create = ereg_replace(",".$crlf."$", "", $schema_create);
$result = mysql_query("SHOW KEYS FROM $db.$table") or mysql_die();
$result = mysql_query("SHOW KEYS FROM " .db_name($db).".$table") or mysql_die();
while($row = mysql_fetch_array($result))
{
$kname=$row['Key_name'];
@@ -567,7 +567,7 @@ function get_table_content ($db, $table, $handler){
// only php > 4.0.5 - staybyte - 27. June 2001
function get_table_content_fast($db, $table, $handler){
$result = mysql_query("SELECT * FROM $db.$table") or mysql_die();
$result = mysql_query("SELECT * FROM ".db_name($db).".$table") or mysql_die();
if ($result!=false){
for($j=0; $j<mysql_num_fields($result);$j++){
$field_set[$j]= mysql_field_name($result,$j);
@@ -611,7 +611,7 @@ function get_table_content_fast($db, $table, $handler){
function get_table_content_old($db, $table, $handler)
{
$result = mysql_query("SELECT * FROM $db.$table") or mysql_die();
$result = mysql_query("SELECT * FROM " . db_name($db) .".$table") or mysql_die();
$i = 0;
while($row = mysql_fetch_row($result))
{
@@ -667,7 +667,7 @@ function get_table_content_old($db, $table, $handler)
function count_records ($db,$table)
{
$result = mysql_query("select count(*) as num from $db.$table");
$result = mysql_query("select count(*) as num from ".db_name($db).".$table");
$num = mysql_result($result,0,"num");
echo $num;
}
@@ -678,7 +678,7 @@ function count_records ($db,$table)
// $handler must accept one parameter ($sql_insert);
function get_table_csv($db, $table, $sep, $handler)
{
$result = mysql_query("SELECT * FROM $db.$table") or mysql_die();
$result = mysql_query("SELECT * FROM ".db_name($db).".$table") or mysql_die();
$i = 0;
while($row = mysql_fetch_row($result))
{
@@ -907,6 +907,16 @@ function format_byte_down($value,$limes=6,$comma=0){
return array($returnvalue,$unit);
}
// to support special characters in db names: Lem9, 2001-06-27
function db_name ($db) {
if (MYSQL_MAJOR_VERSION >= "3.23"
&& intval(MYSQL_MINOR_VERSION) >= 6) {
return "`" . $db . "`";
}
else return $db;
}
include ("./defines.inc.php3");
} // $__LIB_INC__

View File

@@ -63,7 +63,7 @@ if(isset($submit))
}
$sql_query = "ALTER TABLE $table ADD $query";
$result = mysql_query("ALTER TABLE $db.$table ADD $query");
$result = mysql_query("ALTER TABLE ".db_name($db).".$table ADD $query");
$primary = '';
@@ -80,7 +80,7 @@ if(isset($submit))
{
$primary = "ADD PRIMARY KEY ($primary)";
$sql_query .= "\nALTER TABLE $table $primary";
$result = mysql_query("ALTER TABLE $db.$table $primary") or mysql_die();
$result = mysql_query("ALTER TABLE ".db_name($db).".$table $primary") or mysql_die();
}
}
@@ -101,7 +101,7 @@ if(isset($submit))
{
$index = "ADD INDEX ($index)";
$sql_query .= "\nALTER TABLE $table $index";
$result = mysql_query("ALTER TABLE $db.$table $index") or mysql_die();
$result = mysql_query("ALTER TABLE ".db_name($db).".$table $index") or mysql_die();
}
}
@@ -122,7 +122,7 @@ if(isset($submit))
{
$unique = "ADD UNIQUE ($unique)";
$sql_query .= "\nALTER TABLE $table $unique";
$result = mysql_query("ALTER TABLE $db.$table $unique") or mysql_die();
$result = mysql_query("ALTER TABLE ".db_name($db).".$table $unique") or mysql_die();
}
}

View File

@@ -23,7 +23,7 @@ if(isset($submit))
$query = stripslashes($query);
}
//optimization fix - 2 May 2001 - Robbat2
$sql_query = "ALTER TABLE $db.$table CHANGE $query";
$sql_query = "ALTER TABLE ".db_name($db).".$table CHANGE $query";
$result = mysql_query($sql_query) or mysql_die();
$message = "$strTable $table $strHasBeenAltered";
include("./tbl_properties.php3");
@@ -31,7 +31,7 @@ if(isset($submit))
}
else
{
$result = mysql_query("SHOW FIELDS FROM $db.$table LIKE '$field'") or mysql_die();
$result = mysql_query("SHOW FIELDS FROM ".db_name($db).".$table LIKE '$field'") or mysql_die();
$num_fields = mysql_num_rows($result);
$action = "tbl_alter.php3";
include("./tbl_properties.inc.php3");