4

データベースクエリを処理するために Medoo Framework を使用しています。これは基本的に PDO ラッパーです。エラーを処理したり、結果を確認したりする方法をドキュメントで見つけられませんでした。空の配列を返すこともあれば、FALSE を返すこともあれば、0 などを返すこともあります。

エラーを処理する方法を理解できなかったので、これは現在 empty() を使用して行っていることです。これは、 FALSE 、 0 、および空の配列を処理できるためです。ここでは問題ないと思います):

SELECT時 (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
}

INSERT時 (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時 (これは実際には唯一の明確なクエリであり、影響を受ける行を返します)

$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 を使用する必要があるかもしれません。

4

3 に答える 3