From da874a3f5ed38a73d436e9e8de372b01d4c465b3 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Mon, 15 Jun 2009 21:47:29 +0000 Subject: [PATCH] Export triggers after data git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@706 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- adminer/dump.inc.php | 18 ++++++++++++++++++ adminer/include/export.inc.php | 12 ------------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/adminer/dump.inc.php b/adminer/dump.inc.php index 49dc32fb..1a4c5127 100644 --- a/adminer/dump.inc.php +++ b/adminer/dump.inc.php @@ -9,6 +9,21 @@ function tar_file($filename, $contents) { return $return . str_repeat("\0", 512 - strlen($return)) . $contents . str_repeat("\0", 511 - (strlen($contents) + 511) % 512); } +function dump_triggers($table, $style) { + global $dbh; + if ($_POST["format"] != "csv" && $style && $dbh->server_info >= 5) { + $result = $dbh->query("SHOW TRIGGERS LIKE '" . $dbh->escape_string(addcslashes($table, "%_")) . "'"); + if ($result->num_rows) { + echo "\nDELIMITER ;;\n"; + while ($row = $result->fetch_assoc()) { + echo "\nCREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW\n$row[Statement];;\n"; + } + echo "\nDELIMITER ;\n"; + } + $result->free(); + } +} + if ($_POST) { $ext = dump_headers((strlen($_GET["dump"]) ? $_GET["dump"] : $_GET["db"]), (!strlen($_GET["db"]) || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1)); if ($_POST["format"] != "csv") { @@ -66,6 +81,9 @@ if ($_POST) { if ($data) { dump_data($row["Name"], $_POST["data_style"]); } + if ($table) { + dump_triggers($row["Name"], $_POST["table_style"]); + } if ($ext == "tar") { echo tar_file((strlen($_GET["db"]) ? "" : "$db/") . "$row[Name].csv", ob_get_clean()); } elseif ($_POST["format"] != "csv") { diff --git a/adminer/include/export.inc.php b/adminer/include/export.inc.php index 05c39346..4b166698 100644 --- a/adminer/include/export.inc.php +++ b/adminer/include/export.inc.php @@ -101,18 +101,6 @@ DROP PROCEDURE adminer_alter; server_info >= 5) { - $result = $dbh->query("SHOW TRIGGERS LIKE '" . $dbh->escape_string(addcslashes($table, "%_")) . "'"); - if ($result->num_rows) { - echo "DELIMITER ;;\n\n"; - while ($row = $result->fetch_assoc()) { - echo "CREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . idf_escape($row["Table"]) . " FOR EACH ROW $row[Statement];;\n\n"; - } - echo "DELIMITER ;\n\n"; - } - $result->free(); - } } }