I'm using Medoo Framework to handle my database queries. It is basically a PDO wrapper, I didn't find in their documentation how to handle errors or check the result, sometimes it return empty array, sometimes FALSE sometimes 0 etc.
As I couldn't understand how to handle errors this is what I'm doing currently using empty() because it can handle FALSE , 0 and empty Array I think it's okay here):
On SELECT (Medoo returns array)
// 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
}
On INSERT (Medoo says it returns INSERT ID here)
$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
}
On UPDATE (This is actually the only clear query, it returns affected rows)
$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
I am so confused and unsure about these that I'm paranoid maybe I should just completely rewrite and use CodeIgniter like I always do.
 
                        
To check if
SELECT/UPDATEstatement succeeded I use:if(!$select){ // SELECT failed }because MEDOO will return
FALSEor0orempty ArrayifSELECT/UPDATEfailed or no data were retrieved/updated, and all of these things are equalFALSEin anifstatement. ForINSERTyou can use the same thing if your table in database hasIDfield as primary key; if you don't have primary key, then you could useerror()method and parse response to check for errors, becauseMEDOOwill return0even though the statement was executed.