My program does not execute the foreach because $database->FetchArray() is false.
However my request is correct and executed ($success is equal to true).
public static function FindBasicRecipients(): array|bool
{
$database = new Database('log', 'pwd', 'desc');
$database->Connect();
$database->Parse("SELECT
ID_WORKSPACE_USERS,
LOGIN_WORKSPACE_USERS
FROM WORKSPACE_USERS
WHERE FONCTION_WORKSPACE_USERS IN ('Job 1','Job 2', 'Job 3')
ORDER BY EMAIL_WORKSPACE_USERS"
);
$success = $database->Execute();
if ($success) {
$basicRecipients = [];
foreach ($database->FetchArray() as $row) {
$basicRecipients[] = new User(
$row['ID_WORKSPACE_USERS'],
$row['LOGIN_WORKSPACE_USERS']
);
}
$database->FreeStatement();
$database->Close();
return $basicRecipients;
} else {
$database->FreeStatement();
$database->Close();
return false;
}
}
Here is my Database class with my FetchArray method :
public function FetchArray($mode = null): array|false
{
return oci_fetch_array($this->statement, $mode);
}