From 71d0872945dfc7cf1d0989ed5880938b9205e22c Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Fri, 22 Nov 2019 23:34:03 -0700 Subject: [PATCH] Update database.php --- resources/classes/database.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/resources/classes/database.php b/resources/classes/database.php index 94c3a54378..152a703067 100644 --- a/resources/classes/database.php +++ b/resources/classes/database.php @@ -679,7 +679,8 @@ include "root.php"; unset($sql); } - public function delete($array) { + public function delete($delete_array) { + //connect to the database if needed if (!$this->db) { $this->connect(); @@ -699,9 +700,6 @@ include "root.php"; //debug sql $this->debug["sql"] = true; - //start the atomic transaction - //$this->db->beginTransaction(); - //debug info //echo "
\n";
 					//print_r($array);
@@ -709,7 +707,7 @@ include "root.php";
 					//exit;
 
 				//get the current data
-					foreach($array as $table_name => $rows) {
+					foreach($delete_array as $table_name => $rows) {
 						foreach($rows as $row) {
 							$i = 0;
 							$sql = "select * from ".$table_prefix.$table_name." ";
@@ -719,16 +717,24 @@ include "root.php";
 								$parameters[$field_name] = $field_value;
 								$i++;
 							}
-							$old_array[$table_name] = $this->execute($sql, $parameters);
+							if (strlen($field_value) > 0) {
+								$results = $this->execute($sql, $parameters, 'row');
+								if (is_array($results)) {
+									$array[$table_name][] = $results;
+								}
+							}
 							unset($parameters);
 						}
 					}
 
+				//save the array
+					$old_array = &$array;
+
 				//start the atomic transaction
 					$this->db->beginTransaction();
 
 				//delete the current data
-					foreach($array as $table_name => $rows) {
+					foreach($delete_array as $table_name => $rows) {
 						//echo "table: ".$table_name."\n";
 						foreach($rows as $row) {
 							if (permission_exists($this->singular($table_name).'_delete')) {
@@ -859,6 +865,7 @@ include "root.php";
 						$statement->execute();
 						unset($sql);
 					}
+
 			} //delete
 
 			public function count() {