X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fdbm.php;h=de4aef7d2b196cf89a5bcb5578da6e98b45285bf;hb=791fc1d8b3c3cc6bb4e62ef4b6f81bb99c1d45ed;hp=7c8c9b8c145ebd1e709cdcad4892ec696978e43c;hpb=e4c6cfd2d8727f22022218f9105d35eaf37b027e;p=friendica.git diff --git a/include/dbm.php b/include/dbm.php index 7c8c9b8c14..de4aef7d2b 100644 --- a/include/dbm.php +++ b/include/dbm.php @@ -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 { /** @@ -20,8 +21,8 @@ class dbm { foreach ($r AS $process) { $state = trim($process["State"]); - // Filter out all idle processes - if (!in_array($state, array("", "init", "statistics"))) { + // Filter out all non blocking processes + if (!in_array($state, array("", "init", "statistics", "updating"))) { ++$states[$state]; ++$processes; } @@ -40,10 +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 function is_result($array) { - return (is_array($array) && count($array) > 0); + public static function is_result($array) { + // It could be a return value from an update statement + if (is_bool($array)) { + return $array; + } + + 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', $timestamp); } } -?>