diff --git a/ChangeLog b/ChangeLog index b2358bc75..b723aadb1 100755 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ $Source$ 2002-02-25 Loïc Chapeaux * lang/japanese-*: updated thanks to Yukihiro Kawada aka "luc" . + * main.php3: tried a fix against bug #510223 (Create Database link) thanks + to Purodha B Blissenbach . 2002-02-24 Loïc Chapeaux * lang/german.inc.php3: updated thanks to Alexander M. Turek. diff --git a/main.php3 b/main.php3 index a2635d748..27f1c358e 100755 --- a/main.php3 +++ b/main.php3 @@ -191,12 +191,13 @@ if ($server > 0) { $local_query = 'SELECT DISTINCT Db FROM mysql.db WHERE Create_priv = \'Y\' AND User = \'' . PMA_sqlAddslashes($mysql_cur_user) . '\''; $rs_usr = mysql_query($local_query, $dbh); // Debug: or PMA_mysqlDie('', $local_query, FALSE); if ($rs_usr) { + $re = '(^|(\\\\\\\\)+|[^\])'; while ($row = mysql_fetch_array($rs_usr)) { - if (!mysql_select_db($row['Db'], $userlink) && @mysql_errno() != 1044) { - $re = '(^|(\\\\\\\\)+|[^\])'; - $row['Db'] = ereg_replace($re . '%', '\\1...', ereg_replace($re . '_', '\\1?', $row['Db'])); - $db_to_create = $row['Db']; - $is_create_priv = TRUE; + if (ereg($re . '%|_', $row['Db']) + || !mysql_select_db($row['Db'], $userlink) && @mysql_errno() != 1044) { + $row['Db'] = ereg_replace($re . '%', '\\1...', ereg_replace($re . '_', '\\1?', $row['Db'])); + $db_to_create = $row['Db']; + $is_create_priv = TRUE; break; } // end if } // end while