]> git.mxchange.org Git - friendica.git/blobdiff - include/dbm.php
Merge pull request #3879 from zeroadam/Remove-Includes-#3873
[friendica.git] / include / dbm.php
index 6098dce739feec494587391382643249e39d4b4c..1be1647a4633f798ecf9da0420f5cfebed037ca4 100644 (file)
@@ -2,6 +2,7 @@
 /**
  * @brief This class contain functions for the database management
  *
+ * This class contains functions that doesn't need to know if pdo, mysqli or whatever is used.
  */
 class dbm {
        /**
@@ -40,14 +41,72 @@ class dbm {
         * 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
+        * @return      Whether $array is a filled array or an object with rows
         */
        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);
+
+               if (is_object($array)) {
+                       return dba::num_rows($array) > 0;
+               }
+
+               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) || 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', (int)$timestamp);
        }
 }
-?>