summaryrefslogtreecommitdiffstats
path: root/system/database/drivers/mysqli/mysqli_utility.php
diff options
context:
space:
mode:
authorAndrew Podner <a.podner@me.com>2012-12-19 20:15:41 +0100
committerAndrew Podner <a.podner@me.com>2012-12-19 20:15:41 +0100
commit79494dde1c53b671f279e5c5fab2ae03a9ff0353 (patch)
treee38cac2f093958b2e75cbda38429ca34bc2a38e5 /system/database/drivers/mysqli/mysqli_utility.php
parenta9162502512e5eca4fa257689e7a250be900968f (diff)
Resolves issue #2081 : provides an option to include statements to disable and re-enable foreign key checks in a MySQL database backup output statement.
Diffstat (limited to 'system/database/drivers/mysqli/mysqli_utility.php')
-rw-r--r--system/database/drivers/mysqli/mysqli_utility.php13
1 files changed, 13 insertions, 0 deletions
diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php
index 345691e84..ff4949046 100644
--- a/system/database/drivers/mysqli/mysqli_utility.php
+++ b/system/database/drivers/mysqli/mysqli_utility.php
@@ -76,6 +76,13 @@ class CI_DB_mysqli_utility extends CI_DB_utility {
// Build the output
$output = '';
+
+ // Do we need to include a statement to disable FK checks?
+ if ($fk_checks === FALSE)
+ {
+ $output .= "SET foreign_key_checks = 0;".$newline;
+ }
+
foreach ( (array) $tables as $table)
{
// Is the table in the "ignore" list?
@@ -181,6 +188,12 @@ class CI_DB_mysqli_utility extends CI_DB_utility {
$output .= $newline.$newline;
}
+ // Do we need to include a statement to re-enable FK checks?
+ if ($fk_checks === FALSE)
+ {
+ $output .= "SET foreign_key_checks = 1;".$newline;
+ }
+
return $output;
}