]> git.mxchange.org Git - friendica.git/blobdiff - include/dbm.php
merged 2 if() into one as requested by CR
[friendica.git] / include / dbm.php
index f68987c2356d23a016bfdc4a0546c0f1d25d9f37..d28d49d63b4b53647392f5d6c928fdba5b76d3bf 100644 (file)
@@ -1,18 +1,31 @@
 <?php
+/**
+ * @brief This class contain functions for the database management
+ *
+ */
 class dbm {
+       /**
+        * @brief Return a list of database processes
+        *
+        * @return array
+        *      'list' => List of processes, separated in their different states
+        *      'amount' => Number of concurrent database processes
+        */
        public static function processlist() {
                $r = q("SHOW PROCESSLIST");
                $s = array();
 
+               $processes = 0;
                $states = array();
                foreach ($r AS $process) {
                        $state = trim($process["State"]);
-                       if (!in_array($state, array("", "init", "statistics")))
+
+                       // Filter out all non blocking processes
+                       if (!in_array($state, array("", "init", "statistics", "updating"))) {
                                ++$states[$state];
+                               ++$processes;
+                       }
                }
-               // query end
-               // Sending data
-               // updating
 
                $statelist = "";
                foreach ($states AS $state => $usage) {
@@ -20,7 +33,75 @@ class dbm {
                                $statelist .= ", ";
                        $statelist .= $state.": ".$usage;
                }
-               return($statelist);
+               return(array("list" => $statelist, "amount" => $processes));
+       }
+
+       /**
+        * Checks if $array is a filled array with at least one entry.
+        *
+        * @param       $array  mixed   A filled array with at least one entry
+        * @return      Whether $array is a filled array
+        */
+       public static function is_result($array) {
+               // It could be a return value from an update statement
+               if (is_bool($array)) {
+                       return $array;
+               }
+               return (is_array($array) && count($array) > 0);
+       }
+
+       /**
+        * @brief Callback function for "esc_array"
+        *
+        * @param mixed $value Array value
+        * @param string $key Array key
+        * @param boolean $add_quotation add quotation marks for string values
+        */
+       private static function esc_array_callback(&$value, $key, $add_quotation) {
+
+               if (!$add_quotation) {
+                       if (is_bool($value)) {
+                               $value = ($value ? '1' : '0');
+                       } else {
+                               $value = dbesc($value);
+                       }
+                       return;
+               }
+
+               if (is_bool($value)) {
+                       $value = ($value ? 'true' : 'false');
+               } elseif (is_float($value) OR is_integer($value)) {
+                       $value = (string)$value;
+               } else {
+                        $value = "'".dbesc($value)."'";
+               }
+       }
+
+       /**
+        * @brief Escapes a whole array
+        *
+        * @param mixed $arr Array with values to be escaped
+        * @param boolean $add_quotation add quotation marks for string values
+        */
+       public static function esc_array(&$arr, $add_quotation = false) {
+               array_walk($arr, 'self::esc_array_callback', $add_quotation);
+       }
+
+       /**
+        * Checks Converts any date string into a SQL compatible date string
+        *
+        * @param string $date a date string in any format
+        * @return string SQL style date string
+        */
+       public static function date($date = 'now') {
+               $timestamp = strtotime($date);
+
+               // Don't allow lower date strings as '0001-01-01 00:00:00'
+               if ($timestamp < -62135596800) {
+                       $timestamp = -62135596800;
+               }
+
+               return date('Y-m-d H:i:s', $timestamp);
        }
 }
 ?>