Add Database\DBM methods to Database\DBA
This commit is contained in:
parent
38f341e064
commit
c55e389bbc
1 changed files with 101 additions and 0 deletions
|
@ -9,10 +9,14 @@ namespace Friendica\Database;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
use Friendica\Util\DateTimeFormat;
|
use Friendica\Util\DateTimeFormat;
|
||||||
use mysqli;
|
use mysqli;
|
||||||
|
use mysqli_result;
|
||||||
|
use mysqli_stmt;
|
||||||
use PDO;
|
use PDO;
|
||||||
use PDOException;
|
use PDOException;
|
||||||
use PDOStatement;
|
use PDOStatement;
|
||||||
|
|
||||||
|
require_once 'include/dba.php';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class MySQL database class
|
* @class MySQL database class
|
||||||
*
|
*
|
||||||
|
@ -1534,4 +1538,101 @@ class DBA
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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()
|
||||||
|
{
|
||||||
|
$ret = self::p("SHOW PROCESSLIST");
|
||||||
|
$data = self::toArray($ret);
|
||||||
|
|
||||||
|
$s = [];
|
||||||
|
|
||||||
|
$processes = 0;
|
||||||
|
$states = [];
|
||||||
|
foreach ($data as $process) {
|
||||||
|
$state = trim($process["State"]);
|
||||||
|
|
||||||
|
// Filter out all non blocking processes
|
||||||
|
if (!in_array($state, ["", "init", "statistics", "updating"])) {
|
||||||
|
++$states[$state];
|
||||||
|
++$processes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$statelist = "";
|
||||||
|
foreach ($states as $state => $usage) {
|
||||||
|
if ($statelist != "") {
|
||||||
|
$statelist .= ", ";
|
||||||
|
}
|
||||||
|
$statelist .= $state.": ".$usage;
|
||||||
|
}
|
||||||
|
return(["list" => $statelist, "amount" => $processes]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if $array is a filled array with at least one entry.
|
||||||
|
*
|
||||||
|
* @param mixed $array A filled array with at least one entry
|
||||||
|
*
|
||||||
|
* @return boolean 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_object($array)) {
|
||||||
|
return self::numRows($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
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
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
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function esc_array(&$arr, $add_quotation = false)
|
||||||
|
{
|
||||||
|
array_walk($arr, 'self::esc_array_callback', $add_quotation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue