]> git.joonet.de Git - adminer.git/commitdiff
Respect MySQL version
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 6 Jul 2007 16:06:08 +0000 (16:06 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 6 Jul 2007 16:06:08 +0000 (16:06 +0000)
Delimiter

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@73 7c3ca157-0c34-0410-bff1-cbf682f78f5c

dump.inc.php

index 98213333882a074e87c0e4ec0d5373679f8e342b..6a1a0b842d2e649b47266ed707af9e1dec9eb4a6 100644 (file)
@@ -3,22 +3,26 @@ header("Content-Type: text/plain; charset=utf-8");
 
 function dump($db) {
        static $routines;
+       static $version;
        if (!isset($routines)) {
+               $version = mysql_get_server_info();
                $routines = array();
-               foreach (array("FUNCTION", "PROCEDURE") as $routine) {
-                       $result = mysql_query("SHOW $routine STATUS");
-                       while ($row = mysql_fetch_assoc($result)) {
-                               if (!strlen($_GET["db"]) || $row["Db"] === $_GET["db"]) {
-                                       $routines[$row["Db"]][] = mysql_result(mysql_query("SHOW CREATE $routine " . idf_escape($row["Db"]) . "." . idf_escape($row["Name"])), 0, 2) . ";\n\n"; //! delimiter
+               if ($version >= 5) {
+                       foreach (array("FUNCTION", "PROCEDURE") as $routine) {
+                               $result = mysql_query("SHOW $routine STATUS");
+                               while ($row = mysql_fetch_assoc($result)) {
+                                       if (!strlen($_GET["db"]) || $row["Db"] === $_GET["db"]) {
+                                               $routines[$row["Db"]][] = mysql_result(mysql_query("SHOW CREATE $routine " . idf_escape($row["Db"]) . "." . idf_escape($row["Name"])), 0, 2) . ";;\n\n";
+                                       }
                                }
+                               mysql_free_result($result);
                        }
-                       mysql_free_result($result);
                }
        }
        
        $result = mysql_query("SHOW CREATE DATABASE " . idf_escape($db));
        if ($result) {
-               echo mysql_result($result, 0) . ";\n";
+               echo mysql_result($result, 0, 1) . ";\n";
                mysql_free_result($result);
        }
        echo "USE " . idf_escape($db) . ";\n";
@@ -41,14 +45,23 @@ function dump($db) {
        }
        mysql_free_result($result);
        
-       $result = mysql_query("SHOW TRIGGERS");
-       while ($row = mysql_fetch_assoc($result)) {
-               echo "CREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW $row[Statement];\n\n"; //! delimiter
+       if ($version >= 5) {
+               $result = mysql_query("SHOW TRIGGERS");
+               $triggers = mysql_num_rows($result);
+               if ($triggers || $routines[$db]) {
+                       echo "DELIMITER ;;\n\n";
+               }
+               while ($row = mysql_fetch_assoc($result)) {
+                       echo "CREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW $row[Statement];;\n\n";
+               }
+               mysql_free_result($result);
+               echo implode("", (array) $routines[$db]);
+               if ($triggers || $routines[$db]) {
+                       echo "DELIMITER ;\n\n";
+               }
        }
-       mysql_free_result($result);
-       echo "\n\n";
        
-       echo implode("", (array) $routines[$db]);
+       echo "\n\n";
 }
 
 if (strlen($_GET["db"])) {