summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/controller/shift_entries_controller.php9
-rw-r--r--includes/model/AngelType_model.php8
-rw-r--r--includes/model/EventConfig_model.php8
-rw-r--r--includes/model/Message_model.php6
-rw-r--r--includes/model/Room_model.php8
-rw-r--r--includes/model/ShiftEntry_model.php13
-rw-r--r--includes/model/ShiftTypes_model.php8
-rw-r--r--includes/model/Shifts_model.php18
-rw-r--r--includes/model/UserAngelTypes_model.php16
-rw-r--r--includes/model/UserDriverLicenses_model.php8
-rw-r--r--includes/model/User_model.php49
-rw-r--r--includes/pages/admin_active.php9
-rw-r--r--includes/pages/admin_groups.php6
-rw-r--r--includes/pages/admin_news.php4
-rw-r--r--includes/pages/admin_questions.php12
-rw-r--r--includes/pages/admin_shifts.php4
-rw-r--r--includes/pages/admin_user.php16
-rw-r--r--includes/pages/guest_login.php5
-rw-r--r--includes/pages/guest_stats.php3
-rw-r--r--includes/pages/user_messages.php8
-rw-r--r--includes/pages/user_myshifts.php9
-rw-r--r--includes/pages/user_news.php3
-rw-r--r--includes/pages/user_questions.php4
-rw-r--r--includes/sys_auth.php5
-rw-r--r--src/Database/Db.php17
25 files changed, 83 insertions, 173 deletions
diff --git a/includes/controller/shift_entries_controller.php b/includes/controller/shift_entries_controller.php
index 03d7a27f..72189869 100644
--- a/includes/controller/shift_entries_controller.php
+++ b/includes/controller/shift_entries_controller.php
@@ -43,7 +43,7 @@ function shift_entry_add_controller()
$type = AngelType($type_id);
} else {
// TODO: Move queries to model
- $type = DB::select('
+ $type = DB::selectOne('
SELECT *
FROM `UserAngelTypes`
JOIN `AngelTypes` ON (`UserAngelTypes`.`angeltype_id` = `AngelTypes`.`id`)
@@ -56,7 +56,6 @@ function shift_entry_add_controller()
)
)
', [$type_id, $user['UID']]);
- $type = array_shift($type);
}
if (empty($type)) {
@@ -241,7 +240,7 @@ function shift_entry_delete_controller()
}
$entry_id = $request->input('entry_id');
- $shift_entry_source = DB::select('
+ $shift_entry_source = DB::selectOne('
SELECT
`User`.`Nick`,
`ShiftEntry`.`Comment`,
@@ -260,9 +259,7 @@ function shift_entry_delete_controller()
WHERE `ShiftEntry`.`id`=?',
[$entry_id]
);
- if (count($shift_entry_source) > 0) {
- $shift_entry_source = array_shift($shift_entry_source);
-
+ if (!empty($shift_entry_source)) {
if (!in_array('user_shifts_admin', $privileges) && (!in_array('shiftentry_edit_angeltype_supporter',
$privileges) || !User_is_AngelType_supporter($user, AngelType($shift_entry_source['angeltype_id'])))
) {
diff --git a/includes/model/AngelType_model.php b/includes/model/AngelType_model.php
index f08733d5..bc535667 100644
--- a/includes/model/AngelType_model.php
+++ b/includes/model/AngelType_model.php
@@ -256,14 +256,8 @@ function AngelType_ids()
*/
function AngelType($angeltype_id)
{
- $angelType_source = DB::select(
+ return DB::selectOne(
'SELECT * FROM `AngelTypes` WHERE `id`=?',
[$angeltype_id]
);
-
- if (empty($angelType_source)) {
- return null;
- }
-
- return array_shift($angelType_source);
}
diff --git a/includes/model/EventConfig_model.php b/includes/model/EventConfig_model.php
index c5caf4d5..646d19c5 100644
--- a/includes/model/EventConfig_model.php
+++ b/includes/model/EventConfig_model.php
@@ -9,13 +9,7 @@ use Engelsystem\Database\DB;
*/
function EventConfig()
{
- $event_config = DB::select('SELECT * FROM `EventConfig` LIMIT 1');
-
- if (empty($event_config)) {
- return null;
- }
-
- return array_shift($event_config);
+ return DB::selectOne('SELECT * FROM `EventConfig` LIMIT 1');
}
/**
diff --git a/includes/model/Message_model.php b/includes/model/Message_model.php
index ebd4b37e..9bb037af 100644
--- a/includes/model/Message_model.php
+++ b/includes/model/Message_model.php
@@ -20,11 +20,7 @@ function Message_ids()
*/
function Message($message_id)
{
- $message_source = DB::select('SELECT * FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id]);
- if (empty($message_source)) {
- return null;
- }
- return array_shift($message_source);
+ return DB::selectOne('SELECT * FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id]);
}
/**
diff --git a/includes/model/Room_model.php b/includes/model/Room_model.php
index 08e0f7bf..8425e5ad 100644
--- a/includes/model/Room_model.php
+++ b/includes/model/Room_model.php
@@ -58,17 +58,11 @@ function Room_create($name, $from_frab, $public, $number = null)
*/
function Room($room_id, $onlyVisible = true)
{
- $room_source = DB::select('
+ return DB::selectOne('
SELECT *
FROM `Room`
WHERE `RID` = ?
' . ($onlyVisible ? 'AND `show` = \'Y\'' : ''),
[$room_id]
);
-
- if (empty($room_source)) {
- return null;
- }
-
- return array_shift($room_source);
}
diff --git a/includes/model/ShiftEntry_model.php b/includes/model/ShiftEntry_model.php
index 563a611f..3a7254ad 100644
--- a/includes/model/ShiftEntry_model.php
+++ b/includes/model/ShiftEntry_model.php
@@ -28,10 +28,9 @@ function ShiftEntry_new()
*/
function ShiftEntries_freeleaded_count()
{
- $result = DB::select('SELECT COUNT(*) FROM `ShiftEntry` WHERE `freeloaded` = 1');
- $result = array_shift($result);
+ $result = DB::selectOne('SELECT COUNT(*) FROM `ShiftEntry` WHERE `freeloaded` = 1');
- if (!is_array($result)) {
+ if (empty($result)) {
return 0;
}
@@ -129,13 +128,7 @@ function ShiftEntry_update($shift_entry)
*/
function ShiftEntry($shift_entry_id)
{
- $shift_entry = DB::select('SELECT * FROM `ShiftEntry` WHERE `id` = ?', [$shift_entry_id]);
-
- if (empty($shift_entry)) {
- return null;
- }
-
- return $shift_entry[0];
+ return DB::selectOne('SELECT * FROM `ShiftEntry` WHERE `id` = ?', [$shift_entry_id]);
}
/**
diff --git a/includes/model/ShiftTypes_model.php b/includes/model/ShiftTypes_model.php
index 05c1a949..227df367 100644
--- a/includes/model/ShiftTypes_model.php
+++ b/includes/model/ShiftTypes_model.php
@@ -70,13 +70,7 @@ function ShiftType_create($name, $angeltype_id, $description)
*/
function ShiftType($shifttype_id)
{
- $shifttype = DB::select('SELECT * FROM `ShiftTypes` WHERE `id`=?', [$shifttype_id]);
-
- if (empty($shifttype)) {
- return null;
- }
-
- return array_shift($shifttype);
+ return DB::selectOne('SELECT * FROM `ShiftTypes` WHERE `id`=?', [$shifttype_id]);
}
/**
diff --git a/includes/model/Shifts_model.php b/includes/model/Shifts_model.php
index 939a4f4e..88b28998 100644
--- a/includes/model/Shifts_model.php
+++ b/includes/model/Shifts_model.php
@@ -112,7 +112,7 @@ function NeededAngeltypes_by_ShiftsFilter(ShiftsFilter $shiftsFilter)
*/
function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype)
{
- $result = DB::select('
+ return DB::selectOne('
SELECT
`NeededAngelTypes`.*,
`Shifts`.`SID`,
@@ -150,12 +150,6 @@ function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype)
$angeltype['id']
]
);
-
- if (empty($result)) {
- return null;
- }
-
- return $result[0];
}
/**
@@ -453,13 +447,13 @@ function Shift_update($shift)
*/
function Shift_update_by_psid($shift)
{
- $shift_source = DB::select('SELECT `SID` FROM `Shifts` WHERE `PSID`=?', [$shift['PSID']]);
+ $shift_source = DB::selectOne('SELECT `SID` FROM `Shifts` WHERE `PSID`=?', [$shift['PSID']]);
if (empty($shift_source)) {
throw new Exception('Shift not found.');
}
- $shift['SID'] = $shift_source[0]['SID'];
+ $shift['SID'] = $shift_source['SID'];
return Shift_update($shift);
}
@@ -537,18 +531,16 @@ function Shifts_by_user($user, $include_freeload_comments = false)
*/
function Shift($shift_id)
{
- $shifts_source = DB::select('
+ $result = DB::selectOne('
SELECT `Shifts`.*, `ShiftTypes`.`name`
FROM `Shifts`
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
WHERE `SID`=?', [$shift_id]);
- if (empty($shifts_source)) {
+ if (empty($result)) {
return null;
}
- $result = $shifts_source[0];
-
$shiftsEntry_source = DB::select('
SELECT `id`, `TID` , `UID` , `freeloaded`
FROM `ShiftEntry`
diff --git a/includes/model/UserAngelTypes_model.php b/includes/model/UserAngelTypes_model.php
index 3ec151fb..5b0caf98 100644
--- a/includes/model/UserAngelTypes_model.php
+++ b/includes/model/UserAngelTypes_model.php
@@ -197,17 +197,11 @@ function UserAngelType_create($user, $angeltype)
*/
function UserAngelType($user_angeltype_id)
{
- $angeltype = DB::select('
+ return DB::selectOne('
SELECT *
FROM `UserAngelTypes`
WHERE `id`=?
LIMIT 1', [$user_angeltype_id]);
-
- if (empty($angeltype)) {
- return null;
- }
-
- return $angeltype[0];
}
/**
@@ -219,7 +213,7 @@ function UserAngelType($user_angeltype_id)
*/
function UserAngelType_by_User_and_AngelType($user, $angeltype)
{
- $angeltype = DB::select('
+ return DB::selectOne('
SELECT *
FROM `UserAngelTypes`
WHERE `user_id`=?
@@ -231,10 +225,4 @@ function UserAngelType_by_User_and_AngelType($user, $angeltype)
$angeltype['id']
]
);
-
- if (empty($angeltype)) {
- return null;
- }
-
- return array_shift($angeltype);
}
diff --git a/includes/model/UserDriverLicenses_model.php b/includes/model/UserDriverLicenses_model.php
index 515a2701..798aa6ab 100644
--- a/includes/model/UserDriverLicenses_model.php
+++ b/includes/model/UserDriverLicenses_model.php
@@ -45,16 +45,10 @@ function UserDriverLicense_valid($user_driver_license)
*/
function UserDriverLicense($user_id)
{
- $user_driver_license = DB::select('
+ return DB::selectOne('
SELECT *
FROM `UserDriverLicenses`
WHERE `user_id`=?', [$user_id]);
-
- if (empty($user_driver_license)) {
- return null;
- }
-
- return array_shift($user_driver_license);
}
/**
diff --git a/includes/model/User_model.php b/includes/model/User_model.php
index f86d5bf6..4757ed3c 100644
--- a/includes/model/User_model.php
+++ b/includes/model/User_model.php
@@ -87,8 +87,7 @@ function User_update($user)
*/
function User_force_active_count()
{
- $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `force_active` = 1');
- $result = array_shift($result);
+ $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `force_active` = 1');
if (empty($result)) {
return 0;
@@ -102,8 +101,7 @@ function User_force_active_count()
*/
function User_active_count()
{
- $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `Aktiv` = 1');
- $result = array_shift($result);
+ $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `Aktiv` = 1');
if (empty($result)) {
return 0;
@@ -117,8 +115,7 @@ function User_active_count()
*/
function User_got_voucher_count()
{
- $result = DB::select('SELECT SUM(`got_voucher`) FROM `User`');
- $result = array_shift($result);
+ $result = DB::selectOne('SELECT SUM(`got_voucher`) FROM `User`');
if (empty($result)) {
return 0;
@@ -132,8 +129,7 @@ function User_got_voucher_count()
*/
function User_arrived_count()
{
- $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `Gekommen` = 1');
- $result = array_shift($result);
+ $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `Gekommen` = 1');
if (empty($result)) {
return 0;
@@ -147,8 +143,7 @@ function User_arrived_count()
*/
function User_tshirts_count()
{
- $result = DB::select('SELECT COUNT(*) FROM `User` WHERE `Tshirt` = 1');
- $result = array_shift($result);
+ $result = DB::selectOne('SELECT COUNT(*) FROM `User` WHERE `Tshirt` = 1');
if (empty($result)) {
return 0;
@@ -382,13 +377,7 @@ function User_validate_planned_departure_date($planned_arrival_date, $planned_de
*/
function User($user_id)
{
- $user_source = DB::select('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]);
-
- if (empty($user_source)) {
- return null;
- }
-
- return array_shift($user_source);
+ return DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]);
}
/**
@@ -400,13 +389,7 @@ function User($user_id)
*/
function User_by_api_key($api_key)
{
- $user = DB::select('SELECT * FROM `User` WHERE `api_key`=? LIMIT 1', [$api_key]);
-
- if (empty($user)) {
- return null;
- }
-
- return $user[0];
+ return DB::selectOne('SELECT * FROM `User` WHERE `api_key`=? LIMIT 1', [$api_key]);
}
/**
@@ -417,30 +400,18 @@ function User_by_api_key($api_key)
*/
function User_by_email($email)
{
- $user = DB::select('SELECT * FROM `User` WHERE `email`=? LIMIT 1', [$email]);
-
- if (empty($user)) {
- return null;
- }
-
- return array_shift($user);
+ return DB::selectOne('SELECT * FROM `User` WHERE `email`=? LIMIT 1', [$email]);
}
/**
* Returns User by password token.
*
* @param string $token
- * @return array|null Matching user, null or false on error
+ * @return array|null Matching user, null when not found
*/
function User_by_password_recovery_token($token)
{
- $user = DB::select('SELECT * FROM `User` WHERE `password_recovery_token`=? LIMIT 1', [$token]);
-
- if (empty($user)) {
- return null;
- }
-
- return array_shift($user);
+ return DB::selectOne('SELECT * FROM `User` WHERE `password_recovery_token`=? LIMIT 1', [$token]);
}
/**
diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php
index 2e06f90d..be1217ff 100644
--- a/includes/pages/admin_active.php
+++ b/includes/pages/admin_active.php
@@ -210,19 +210,17 @@ function admin_active()
$shirt_statistics = [];
foreach (array_keys($tshirt_sizes) as $size) {
if (!empty($size)) {
- $sc = DB::select(
+ $sc = DB::selectOne(
'SELECT count(*) FROM `User` WHERE `Size`=? AND `Gekommen`=1',
[$size]
);
$sc = array_shift($sc);
- $sc = array_shift($sc);
- $gc = DB::select(
+ $gc = DB::selectOne(
'SELECT count(*) FROM `User` WHERE `Size`=? AND `Tshirt`=1',
[$size]
);
$gc = array_shift($gc);
- $gc = array_shift($gc);
$shirt_statistics[] = [
'size' => $size,
@@ -232,8 +230,7 @@ function admin_active()
}
}
- $uc = DB::select('SELECT count(*) FROM `User` WHERE `Tshirt`=1');
- $uc = array_shift($uc);
+ $uc = DB::selectOne('SELECT count(*) FROM `User` WHERE `Tshirt`=1');
$uc = array_shift($uc);
$shirt_statistics[] = [
diff --git a/includes/pages/admin_groups.php b/includes/pages/admin_groups.php
index c483a79d..ea0d4dbc 100644
--- a/includes/pages/admin_groups.php
+++ b/includes/pages/admin_groups.php
@@ -107,23 +107,21 @@ function admin_groups()
return error('Incomplete call, missing Groups ID.', true);
}
- $group = DB::select('SELECT * FROM `Groups` WHERE `UID`=? LIMIT 1', [$group_id]);
+ $group = DB::selectOne('SELECT * FROM `Groups` WHERE `UID`=? LIMIT 1', [$group_id]);
$privileges = $request->get('privileges');
if (!is_array($privileges)) {
$privileges = [];
}
if (!empty($group)) {
- $group = array_shift($group);
DB::delete('DELETE FROM `GroupPrivileges` WHERE `group_id`=?', [$group_id]);
$privilege_names = [];
foreach ($privileges as $privilege) {
if (preg_match('/^\d{1,}$/', $privilege)) {
- $group_privileges_source = DB::select(
+ $group_privileges_source = DB::selectOne(
'SELECT `name` FROM `Privileges` WHERE `id`=? LIMIT 1',
[$privilege]
);
if (!empty($group_privileges_source)) {
- $group_privileges_source = array_shift($group_privileges_source);
DB::insert(
'INSERT INTO `GroupPrivileges` (`group_id`, `privilege_id`) VALUES (?, ?)',
[$group_id, $privilege]
diff --git a/includes/pages/admin_news.php b/includes/pages/admin_news.php
index 7f8ca1ba..4eafd3e2 100644
--- a/includes/pages/admin_news.php
+++ b/includes/pages/admin_news.php
@@ -21,14 +21,13 @@ function admin_news()
return error('Incomplete call, missing News ID.', true);
}
- $news = DB::select('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$news_id]);
+ $news = DB::selectOne('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$news_id]);
if (empty($news)) {
return error('No News found.', true);
}
switch ($request->input('action')) {
case 'edit':
- $news = array_shift($news);
$user_source = User($news['UID']);
$html .= form([
@@ -70,7 +69,6 @@ function admin_news()
break;
case 'delete':
- $news = array_shift($news);
DB::delete('DELETE FROM `News` WHERE `ID`=? LIMIT 1', [$news_id]);
engelsystem_log('News deleted: ' . $news['Betreff']);
success(_('News entry deleted.'));
diff --git a/includes/pages/admin_questions.php b/includes/pages/admin_questions.php
index d05bace6..2b61b055 100644
--- a/includes/pages/admin_questions.php
+++ b/includes/pages/admin_questions.php
@@ -105,11 +105,11 @@ function admin_questions()
return error('Incomplete call, missing Question ID.', true);
}
- $question = DB::select(
+ $question = DB::selectOne(
'SELECT * FROM `Questions` WHERE `QID`=? LIMIT 1',
[$question_id]
);
- if (count($question) > 0 && $question[0]['AID'] == null) {
+ if (!empty($question) && $question['AID'] == null) {
$answer = trim(
preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui",
'',
@@ -129,7 +129,7 @@ function admin_questions()
$question_id,
]
);
- engelsystem_log('Question ' . $question[0]['Question'] . ' answered: ' . $answer);
+ engelsystem_log('Question ' . $question['Question'] . ' answered: ' . $answer);
redirect(page_link_to('admin_questions'));
} else {
return error('Enter an answer!', true);
@@ -145,13 +145,13 @@ function admin_questions()
return error('Incomplete call, missing Question ID.', true);
}
- $question = DB::select(
+ $question = DB::selectOne(
'SELECT * FROM `Questions` WHERE `QID`=? LIMIT 1',
[$question_id]
);
- if (count($question) > 0) {
+ if (!empty($question)) {
DB::delete('DELETE FROM `Questions` WHERE `QID`=? LIMIT 1', [$question_id]);
- engelsystem_log('Question deleted: ' . $question[0]['Question']);
+ engelsystem_log('Question deleted: ' . $question['Question']);
redirect(page_link_to('admin_questions'));
} else {
return error('No question found.', true);
diff --git a/includes/pages/admin_shifts.php b/includes/pages/admin_shifts.php
index 36028792..b5079ed1 100644
--- a/includes/pages/admin_shifts.php
+++ b/includes/pages/admin_shifts.php
@@ -325,7 +325,7 @@ function admin_shifts()
);
foreach ($_SESSION['admin_shifts_types'] as $type_id => $count) {
- $angel_type_source = DB::select('
+ $angel_type_source = DB::selectOne('
SELECT *
FROM `AngelTypes`
WHERE `id` = ?
@@ -341,7 +341,7 @@ function admin_shifts()
$count
]
);
- $needed_angel_types_info[] = $angel_type_source[0]['name'] . ': ' . $count;
+ $needed_angel_types_info[] = $angel_type_source['name'] . ': ' . $count;
}
}
}
diff --git a/includes/pages/admin_user.php b/includes/pages/admin_user.php
index 510e2292..6bdc8d71 100644
--- a/includes/pages/admin_user.php
+++ b/includes/pages/admin_user.php
@@ -116,20 +116,20 @@ function admin_user()
$html .= '<hr />';
- $my_highest_group = DB::select(
+ $my_highest_group = DB::selectOne(
'SELECT group_id FROM `UserGroups` WHERE `uid`=? ORDER BY `group_id` LIMIT 1',
[$user['UID']]
);
- if (count($my_highest_group) > 0) {
- $my_highest_group = $my_highest_group[0]['group_id'];
+ if (!empty($my_highest_group)) {
+ $my_highest_group = $my_highest_group['group_id'];
}
- $his_highest_group = DB::select(
+ $his_highest_group = DB::selectOne(
'SELECT `group_id` FROM `UserGroups` WHERE `uid`=? ORDER BY `group_id` LIMIT 1',
[$user_id]
);
- if (count($his_highest_group) > 0) {
- $his_highest_group = $his_highest_group[0]['group_id'];
+ if (!empty($his_highest_group)) {
+ $his_highest_group = $his_highest_group['group_id'];
}
if ($user_id != $user['UID'] && $my_highest_group <= $his_highest_group) {
@@ -188,7 +188,7 @@ function admin_user()
count($my_highest_group) > 0
&& (
count($his_highest_group) == 0
- || ($my_highest_group[0]['group_id'] <= $his_highest_group[0]['group_id'])
+ || ($my_highest_group['group_id'] <= $his_highest_group['group_id'])
)
) {
$groups_source = DB::select('
@@ -203,7 +203,7 @@ function admin_user()
',
[
$user_id,
- $my_highest_group[0]['group_id'],
+ $my_highest_group['group_id'],
]
);
$groups = [];
diff --git a/includes/pages/guest_login.php b/includes/pages/guest_login.php
index 106db33a..f8c52767 100644
--- a/includes/pages/guest_login.php
+++ b/includes/pages/guest_login.php
@@ -399,9 +399,8 @@ function guest_login()
if ($request->has('submit')) {
if ($request->has('nick') && strlen(User_validate_Nick($request->input('nick'))) > 0) {
$nick = User_validate_Nick($request->input('nick'));
- $login_user = DB::select('SELECT * FROM `User` WHERE `Nick`=?', [$nick]);
- if (count($login_user) > 0) {
- $login_user = $login_user[0];
+ $login_user = DB::selectOne('SELECT * FROM `User` WHERE `Nick`=?', [$nick]);
+ if (!empty($login_user)) {
if ($request->has('password')) {
if (!verify_password($request->post('password'), $login_user['Passwort'], $login_user['UID'])) {
$valid = false;
diff --git a/includes/pages/guest_stats.php b/includes/pages/guest_stats.php
index 8aa6f740..bf1814a3 100644
--- a/includes/pages/guest_stats.php
+++ b/includes/pages/guest_stats.php
@@ -17,13 +17,12 @@ function guest_stats()
list($arrived_user_count) = DB::select('SELECT count(*) AS `user_count` FROM `User` WHERE `Gekommen`=1');
$stats['arrived_user_count'] = $arrived_user_count['user_count'];
- $done_shifts_seconds = DB::select('
+ $done_shifts_seconds = DB::selectOne('
SELECT SUM(`Shifts`.`end` - `Shifts`.`start`)
FROM `ShiftEntry`
JOIN `Shifts` USING (`SID`)
WHERE `Shifts`.`end` < UNIX_TIMESTAMP()
');
- $done_shifts_seconds = array_shift($done_shifts_seconds);
$done_shifts_seconds = (int)array_shift($done_shifts_seconds);
$stats['done_work_hours'] = round($done_shifts_seconds / (60 * 60), 0);
diff --git a/includes/pages/user_messages.php b/includes/pages/user_messages.php
index a811970d..2dea6207 100644
--- a/includes/pages/user_messages.php
+++ b/includes/pages/user_messages.php
@@ -130,11 +130,11 @@ function user_messages()
return error(_('Incomplete call, missing Message ID.'), true);
}
- $message = DB::select(
+ $message = DB::selectOne(
'SELECT `RUID` FROM `Messages` WHERE `id`=? LIMIT 1',
[$message_id]
);
- if (count($message) > 0 && $message[0]['RUID'] == $user['UID']) {
+ if (!empty($message) && $message['RUID'] == $user['UID']) {
DB::update(
'UPDATE `Messages` SET `isRead`=\'Y\' WHERE `id`=? LIMIT 1',
[$message_id]
@@ -152,11 +152,11 @@ function user_messages()
return error(_('Incomplete call, missing Message ID.'), true);
}
- $message = DB::select(
+ $message = DB::selectOne(
'SELECT `SUID` FROM `Messages` WHERE `id`=? LIMIT 1',
[$message_id]
);
- if (count($message) > 0 && $message[0]['SUID'] == $user['UID']) {
+ if (!empty($message) && $message['SUID'] == $user['UID']) {
DB::delete('DELETE FROM `Messages` WHERE `id`=? LIMIT 1', [$message_id]);
redirect(page_link_to('user_messages'));
} else {
diff --git a/includes/pages/user_myshifts.php b/includes/pages/user_myshifts.php
index a10e6f82..81f8f505 100644
--- a/includes/pages/user_myshifts.php
+++ b/includes/pages/user_myshifts.php
@@ -31,8 +31,7 @@ function user_myshifts()
$user_id = $user['UID'];
}
- $shifts_user = DB::select('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]);
- $shifts_user = array_shift($shifts_user);
+ $shifts_user = DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$user_id]);
if ($request->has('reset')) {
if ($request->input('reset') == 'ack') {
@@ -49,7 +48,7 @@ function user_myshifts()
]);
} elseif ($request->has('edit') && preg_match('/^\d*$/', $request->input('edit'))) {
$user_id = $request->input('edit');
- $shift = DB::select('
+ $shift = DB::selectOne('
SELECT
`ShiftEntry`.`freeloaded`,
`ShiftEntry`.`freeload_comment`,
@@ -74,7 +73,6 @@ function user_myshifts()
]
);
if (count($shift) > 0) {
- $shift = array_shift($shift);
$freeloaded = $shift['freeloaded'];
$freeload_comment = $shift['freeload_comment'];
@@ -128,7 +126,7 @@ function user_myshifts()
}
} elseif ($request->has('cancel') && preg_match('/^\d*$/', $request->input('cancel'))) {
$user_id = $request->input('cancel');
- $shift = DB::select('
+ $shift = DB::selectOne('
SELECT *
FROM `Shifts`
INNER JOIN `ShiftEntry` USING (`SID`)
@@ -140,7 +138,6 @@ function user_myshifts()
]
);
if (count($shift) > 0) {
- $shift = array_shift($shift);
if (
($shift['start'] > time() + config('last_unsubscribe') * 3600)
|| in_array('user_shifts_admin', $privileges)
diff --git a/includes/pages/user_news.php b/includes/pages/user_news.php
index 9bdcb6fb..3cf11a6b 100644
--- a/includes/pages/user_news.php
+++ b/includes/pages/user_news.php
@@ -126,8 +126,7 @@ function user_news_comments()
&& count(DB::select('SELECT `ID` FROM `News` WHERE `ID`=? LIMIT 1', [$request->input('nid')])) > 0
) {
$nid = $request->input('nid');
- $news = DB::select('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$nid]);
- $news = array_shift($news);
+ $news = DB::selectOne('SELECT * FROM `News` WHERE `ID`=? LIMIT 1', [$nid]);
if ($request->has('text')) {
$text = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($request->input('text')));
DB::insert('
diff --git a/includes/pages/user_questions.php b/includes/pages/user_questions.php
index e90ea011..e4f35577 100644
--- a/includes/pages/user_questions.php
+++ b/includes/pages/user_questions.php
@@ -61,11 +61,11 @@ function user_questions()
return error(_('Incomplete call, missing Question ID.'), true);
}
- $question = DB::select(
+ $question = DB::selectOne(
'SELECT `UID` FROM `Questions` WHERE `QID`=? LIMIT 1',
[$question_id]
);
- if (count($question) > 0 && $question[0]['UID'] == $user['UID']) {
+ if (!empty($question) && $question['UID'] == $user['UID']) {
DB::delete(
'DELETE FROM `Questions` WHERE `QID`=? LIMIT 1',
[$question_id]
diff --git a/includes/sys_auth.php b/includes/sys_auth.php
index f1ec3192..e0ed67e5 100644
--- a/includes/sys_auth.php
+++ b/includes/sys_auth.php
@@ -11,10 +11,9 @@ function load_auth()
$user = null;
if (isset($_SESSION['uid'])) {
- $user = DB::select('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$_SESSION['uid']]);
- if (count($user) > 0) {
+ $user = DB::selectOne('SELECT * FROM `User` WHERE `UID`=? LIMIT 1', [$_SESSION['uid']]);
+ if (!empty($user)) {
// User ist eingeloggt, Datensatz zur Verfügung stellen und Timestamp updaten
- $user = array_shift($user);
DB::update('
UPDATE `User`
SET `lastLogIn` = ?
diff --git a/src/Database/Db.php b/src/Database/Db.php
index b433f40d..9422ae77 100644
--- a/src/Database/Db.php
+++ b/src/Database/Db.php
@@ -79,6 +79,23 @@ class Db
return self::$stm->fetchAll(PDO::FETCH_ASSOC);
}
+
+ /**
+ * Run a select query and return only the first result or null if no result is found.
+ * @param string $query
+ * @param array $bindings
+ * @return array|null
+ */
+ public static function selectOne($query, array $bindings = [])
+ {
+ $result = self::select($query);
+
+ if(empty($result)) {
+ return null;
+ }
+
+ return array_shift($result);
+ }
/**
* Run an insert query