gpt4 book ai didi

php - 我是否在 Medoo Framework 中正确处理查询错误?

转载 作者:可可西里 更新时间:2023-11-01 08:29:33 40 4
gpt4 key购买 nike

我正在使用 Medoo 框架来处理我的数据库查询。它基本上是一个 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 = $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。

最佳答案

要检查 SELECT/UPDATE 语句是否成功,我使用:

if(!$select){
//选择失败
}

因为如果 SELECT/UPDATE 失败或没有数据,MEDOO 将返回 FALSE0empty Array检索/更新,所有这些在 if 语句中都等于 FALSE。对于 INSERT,如果数据库中的表将 ID 字段作为主键,则可以使用相同的东西;如果你没有主键,那么你可以使用 error() 方法并解析响应来检查错误,因为 MEDOO 将返回 0 即使语句已执行。

关于php - 我是否在 Medoo Framework 中正确处理查询错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30599875/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com