Правильно ли я обрабатываю ошибки запросов в Medoo Framework?

Я использую Medoo Framework для обработки запросов к базе данных. По сути, это оболочка PDO, я не нашел в их документации, как обрабатывать ошибки или проверять результат, иногда он возвращает пустой массив, иногда FALSE, иногда 0 и т. Д.

Поскольку я не мог понять, как обрабатывать ошибки, это то, что я делаю в настоящее время, используя empty (), потому что он может обрабатывать FALSE, 0 и пустой массив, я думаю, что здесь все в порядке):

На ВЫБРАТЬ (Medoo возвращает массив)

// Same as:
// SELECT username FROM accounts WHERE id=$id AND suspended=0

$select = $database->select("accounts",["username"], [
"AND" => [
"id" => $id,
"suspended"   => 0
]
]);

// I have to check if Query failed also if row was not found

if (empty($select) === FALSE && count($select) > 0)
{
// It didn't FAIL
// So i get username like this:
$key      = array_keys($select)[0];
$username = $select[$key]['username'];
}
else
{
// It FAILED
}

НА ВСТАВКЕ (Medoo говорит, что возвращает INSERT ID здесь)

$insert = $database->insert("accounts", [
"username"        => "$username"]);

// Check if query didn't fail and actually inserted (affected rows i think?)

if (empty($insert) === TRUE OR $insert < 1)
{
// It Failed
}

ОБНОВЛЕНИЕ (На самом деле это единственный чистый запрос, он возвращает затронутые строки)

$update = $database->update("accounts", ["brute_force[+]" => 1], ["id" => $user_id]);

if (empty($update) === TRUE OR $update < 1)
{
// It FAILED
}
// Check if query didn't fail and also affected row

Я настолько смущен и не уверен в этом, что я параноик, может быть, мне следует просто полностью переписать и использовать CodeIgniter, как я всегда делаю.

3

Решение

Чтобы проверить, если SELECT/UPDATE Заявление успешно я использую:

if(!$select){
// SELECT failed
}

потому что MEDOO вернется FALSE или же 0 или же empty Array если SELECT/UPDATE не удалось или данные не были получены / обновлены, и все эти вещи равны FALSE в if заявление. За INSERT вы можете использовать то же самое, если ваша таблица в базе данных имеет ID поле в качестве первичного ключа; если у вас нет первичного ключа, то вы можете использовать error() метод и анализ ответа для проверки на наличие ошибок, потому что MEDOO вернусь 0 хотя заявление было выполнено.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]