gpt4 book ai didi

php - 如何将 "error codes"添加到结果中?

转载 作者:行者123 更新时间:2023-11-29 00:10:09 25 4
gpt4 key购买 nike

我知道如何通过 JSON 从 MySQL 数据库获取一个值、单行或多行到我的 Android 应用程序。但是我如何向结果添加一个值,告诉我查询是否正确,如果不正确,添加错误代码之类的东西?

这是我现在的代码:PHP

$result = mysqli_query($con,"SELECT Role, age FROM table1");
$json = array();
while($row = mysqli_fetch_array($result)){
$json[] = $row;
}
mysqli_close($con);
print json_encode($json);

安卓

        try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag","age: " + json_data.getString("age") +
", role: "+json_data.getString("Role"));
}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}

现在,例如,如果数据库中没有任何用户,则查询不成功。在那种情况下,我想得到一个错误,表明有什么地方不对劲,而错误代码之类的东西告诉我,实际上是什么地方出了问题。否则我会得到一个“OK-Message”和结果。我该怎么做?

我知道对于那个例子我可以通过计算 android 应用程序中的值来做到这一点,但我需要它来处理更复杂的事情,比如注册表中的错误。

我希望你明白我的意思:)谢谢!

最佳答案

首先定义 JSON 架构/结构 - 这是 API 的一部分,应该记录契约。在那之后,几乎所有的东西都会“就位”,这就变成了基本编程的练习。

例如考虑这个契约(Contract)定义;

{
status: - string of "success" or "fail"
errorMessage: - optional, an error message
results: [..] - array of results (always empty on non-OK status), where
- each result is an array of the form [role, age]
}

然后创建 JSON 结果以适合契约(Contract);

$result = mysqli_query($con,"SELECT Role, age FROM table1");

$resp = array();
if ($result) {
// Good, also add results
$resp["status"] = "success";

$results = array();
while($row = mysqli_fetch_array($result)){
$results[] = $row;
}
$resp["results"] = $results;
} else {
// No good!
$resp["status"] = "fail";

$resp["errorMessage"] = "Database query failed";
// Or if this is desired to be exposed (only for development!)
// $resp["errorMessage"] = mysqli_error($con);

// No results, but keep empty JSON array to make JSON access more consistent
$resp["results"] = array();
}
mysqli_close($con);

print json_encode($resp);

然后更新 Android 客户端以接受这个新的 JSON 结构。它需要进行调整以包含一个额外的级别,首先检查 status(是否“成功”?)。如果没问题,则使用 results 数组。如果不显示 errorMessage 或以其他方式通知用户该问题。另请注意,即使未返回任何结果,查询也可能“成功”。

唯一应该抛出异常的时间是 JSON 处理不正确 - 其他一切都应该通过适当的值检查和条件来处理。

关于php - 如何将 "error codes"添加到结果中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25557847/

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