summaryrefslogtreecommitdiffstats
path: root/system/database/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'system/database/drivers')
-rw-r--r--system/database/drivers/interbase/interbase_driver.php3
-rw-r--r--system/database/drivers/interbase/interbase_utility.php20
2 files changed, 18 insertions, 5 deletions
diff --git a/system/database/drivers/interbase/interbase_driver.php b/system/database/drivers/interbase/interbase_driver.php
index 33038ad80..b49d1fa74 100644
--- a/system/database/drivers/interbase/interbase_driver.php
+++ b/system/database/drivers/interbase/interbase_driver.php
@@ -139,6 +139,9 @@ class CI_DB_interbase_driver extends CI_DB {
if (($service = ibase_service_attach($this->hostname, $this->username, $this->password)))
{
$version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);
+
+ // Don't keep the service open
+ ibase_service_detach($service);
return $version;
}
diff --git a/system/database/drivers/interbase/interbase_utility.php b/system/database/drivers/interbase/interbase_utility.php
index e31021acb..76a0497c1 100644
--- a/system/database/drivers/interbase/interbase_utility.php
+++ b/system/database/drivers/interbase/interbase_utility.php
@@ -90,14 +90,24 @@ class CI_DB_interbase_utility extends CI_DB_utility {
/**
* Interbase/Firebird Export
*
- * @param array Preferences
+ * @param string $filename
* @return mixed
*/
- public function _backup($params = array())
+ public function backup($filename)
{
- // Currently unsupported
- // @todo See if can be implemented
- return $this->db->display_error('db_unsuported_feature');
+ if ($service = ibase_service_attach($this->db->hostname, $this->db->username, $this->db->password))
+ {
+ $res = ibase_backup($service, $this->db->database, $filename.'.fbk');
+
+ //Close the service connection
+ ibase_service_detach($service);
+
+ return $res;
+ }
+ else
+ {
+ return FALSE;
+ }
}
}