1
1
Fork 0

Merge pull request #7435 from annando/select-to-array

Added "selectToArray" functions in DBA and Item
This commit is contained in:
Philipp 2019-07-27 19:45:32 +02:00 committed by GitHub
commit b5a9a1f1d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 78 additions and 21 deletions

View file

@ -408,6 +408,23 @@ class DBA
return self::$database->selectFirst($table, $fields, $condition, $params); return self::$database->selectFirst($table, $fields, $condition, $params);
} }
/**
* @brief Select rows from a table and fills an array with the data
*
* @param string $table Table name
* @param array $fields Array of selected fields, empty for all
* @param array $condition Array of fields for condition
* @param array $params Array of several parameters
*
* @return array Data array
* @throws \Exception
* @see self::select
*/
public static function selectToArray(string $table, array $fields = [], array $condition = [], array $params = [])
{
return self::$database->selectToArray($table, $fields, $condition, $params);
}
/** /**
* @brief Select rows from a table * @brief Select rows from a table
* *

View file

@ -1407,6 +1407,23 @@ class Database
} }
} }
/**
* @brief Select rows from a table and fills an array with the data
*
* @param string $table Table name
* @param array $fields Array of selected fields, empty for all
* @param array $condition Array of fields for condition
* @param array $params Array of several parameters
*
* @return array Data array
* @throws \Exception
* @see self::select
*/
public function selectToArray(string $table, array $fields = [], array $condition = [], array $params = [])
{
return $this->toArray($this->select($table, $fields, $condition, $params));
}
/** /**
* @brief Select rows from a table * @brief Select rows from a table
* *

View file

@ -38,7 +38,7 @@ class Attach extends BaseObject
} }
/** /**
* @brief Select rows from the attach table * @brief Select rows from the attach table and return them as array
* *
* @param array $fields Array of selected fields, empty for all * @param array $fields Array of selected fields, empty for all
* @param array $conditions Array of fields for conditions * @param array $conditions Array of fields for conditions
@ -47,16 +47,15 @@ class Attach extends BaseObject
* @return boolean|array * @return boolean|array
* *
* @throws \Exception * @throws \Exception
* @see \Friendica\Database\DBA::select * @see \Friendica\Database\DBA::selectToArray
*/ */
public static function select(array $fields = [], array $conditions = [], array $params = []) public static function selectToArray(array $fields = [], array $conditions = [], array $params = [])
{ {
if (empty($fields)) { if (empty($fields)) {
$fields = self::getFields(); $fields = self::getFields();
} }
$r = DBA::select('attach', $fields, $conditions, $params); $r = DBA::selectToArray('attach', $fields, $conditions, $params);
return DBA::toArray($r);
} }
/** /**
@ -264,7 +263,7 @@ class Attach extends BaseObject
{ {
if (!is_null($img)) { if (!is_null($img)) {
// get items to update // get items to update
$items = self::select(['backend-class','backend-ref'], $conditions); $items = self::selectToArray(['backend-class','backend-ref'], $conditions);
foreach($items as $item) { foreach($items as $item) {
/** @var IStorage $backend_class */ /** @var IStorage $backend_class */
@ -297,7 +296,7 @@ class Attach extends BaseObject
public static function delete(array $conditions, array $options = []) public static function delete(array $conditions, array $options = [])
{ {
// get items to delete data info // get items to delete data info
$items = self::select(['backend-class','backend-ref'], $conditions); $items = self::selectToArray(['backend-class','backend-ref'], $conditions);
foreach($items as $item) { foreach($items as $item) {
/** @var IStorage $backend_class */ /** @var IStorage $backend_class */

View file

@ -117,11 +117,9 @@ class Contact extends BaseObject
* @return array * @return array
* @throws \Exception * @throws \Exception
*/ */
public static function select(array $fields = [], array $condition = [], array $params = []) public static function selectToArray(array $fields = [], array $condition = [], array $params = [])
{ {
$statement = DBA::select('contact', $fields, $condition, $params); return DBA::selectToArray('contact', $fields, $condition, $params);
return DBA::toArray($statement);
} }
/** /**

View file

@ -368,6 +368,33 @@ class Item extends BaseObject
} }
} }
/**
* @brief Select rows from the item table and returns them as an array
*
* @param array $selected Array of selected fields, empty for all
* @param array $condition Array of fields for condition
* @param array $params Array of several parameters
*
* @return array
* @throws \Exception
*/
public static function selectToArray(array $fields = [], array $condition = [], $params = [])
{
$result = self::select($fields, $condition, $params);
if (is_bool($result)) {
return $result;
}
$data = [];
while ($row = self::fetch($result)) {
$data[] = $row;
}
DBA::close($result);
return $data;
}
/** /**
* @brief Select rows from the item table * @brief Select rows from the item table
* *

View file

@ -29,7 +29,7 @@ require_once "include/dba.php";
class Photo extends BaseObject class Photo extends BaseObject
{ {
/** /**
* @brief Select rows from the photo table * @brief Select rows from the photo table and returns them as array
* *
* @param array $fields Array of selected fields, empty for all * @param array $fields Array of selected fields, empty for all
* @param array $conditions Array of fields for conditions * @param array $conditions Array of fields for conditions
@ -38,16 +38,15 @@ class Photo extends BaseObject
* @return boolean|array * @return boolean|array
* *
* @throws \Exception * @throws \Exception
* @see \Friendica\Database\DBA::select * @see \Friendica\Database\DBA::selectToArray
*/ */
public static function select(array $fields = [], array $conditions = [], array $params = []) public static function selectToArray(array $fields = [], array $conditions = [], array $params = [])
{ {
if (empty($fields)) { if (empty($fields)) {
$fields = self::getFields(); $fields = self::getFields();
} }
$r = DBA::select("photo", $fields, $conditions, $params); return DBA::selectToArray('photo', $fields, $conditions, $params);
return DBA::toArray($r);
} }
/** /**
@ -89,7 +88,7 @@ class Photo extends BaseObject
$conditions["resource-id"] = $resourceid; $conditions["resource-id"] = $resourceid;
$conditions["uid"] = $uid; $conditions["uid"] = $uid;
return self::select([], $conditions, $params); return self::selectToArray([], $conditions, $params);
} }
/** /**
@ -350,7 +349,7 @@ class Photo extends BaseObject
public static function delete(array $conditions, array $options = []) public static function delete(array $conditions, array $options = [])
{ {
// get photo to delete data info // get photo to delete data info
$photos = self::select(["backend-class","backend-ref"], $conditions); $photos = self::selectToArray(['backend-class', 'backend-ref'], $conditions);
foreach($photos as $photo) { foreach($photos as $photo) {
/** @var IStorage $backend_class */ /** @var IStorage $backend_class */
@ -380,7 +379,7 @@ class Photo extends BaseObject
{ {
if (!is_null($img)) { if (!is_null($img)) {
// get photo to update // get photo to update
$photos = self::select(["backend-class","backend-ref"], $conditions); $photos = self::selectToArray(['backend-class', 'backend-ref'], $conditions);
foreach($photos as $photo) { foreach($photos as $photo) {
/** @var IStorage $backend_class */ /** @var IStorage $backend_class */

View file

@ -53,7 +53,7 @@ class Contact extends BaseAdminModule
$pager = new Pager($a->query_string, 30); $pager = new Pager($a->query_string, 30);
$contacts = Model\Contact::select([], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]); $contacts = Model\Contact::selectToArray([], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]);
$t = Renderer::getMarkupTemplate('admin/blocklist/contact.tpl'); $t = Renderer::getMarkupTemplate('admin/blocklist/contact.tpl');
$o = Renderer::replaceMacros($t, [ $o = Renderer::replaceMacros($t, [

View file

@ -2176,7 +2176,7 @@ class DFRN
if (($entrytype == DFRN::TOP_LEVEL) && !empty($importer['id'])) { if (($entrytype == DFRN::TOP_LEVEL) && !empty($importer['id'])) {
// The filling of the the "contact" variable is done for legcy reasons // The filling of the the "contact" variable is done for legcy reasons
// The functions below are partly used by ostatus.php as well - where we have this variable // The functions below are partly used by ostatus.php as well - where we have this variable
$contact = Contact::select([], ['id' => $importer['id']]); $contact = Contact::selectFirst([], ['id' => $importer['id']]);
// Big question: Do we need these functions? They were part of the "consume_feed" function. // Big question: Do we need these functions? They were part of the "consume_feed" function.
// This function once was responsible for DFRN and OStatus. // This function once was responsible for DFRN and OStatus.