使用PHP编写的Web服务在Android和iOS应用程序中复制/转储服务器数据库表数据的智能方法
我的服务器数据库中有30多个表。因此,需要获取表中的所有数据时,应该使用一个针对Android的web服务,即iOS应用程序来检索 考虑以下几点:使用PHP编写的Web服务在Android和iOS应用程序中复制/转储服务器数据库表数据的智能方法,php,android,ios,performance,web-services,Php,Android,Ios,Performance,Web Services,我的服务器数据库中有30多个表。因此,需要获取表中的所有数据时,应该使用一个针对Android的web服务,即iOS应用程序来检索 考虑以下几点: 我在服务器数据库的不同表中存储了一些统计信息丰富的utf-8数据 所以我需要将所有表数据合并成json/其他格式 我可以在应用程序端使用web服务获得json/其他格式 例如(如果我们考虑JSON),我们考虑三个表: 表A(身份证、姓名、地址) 表B(键、值) 表C(标题、价格) 在这种情况下,web服务应返回以下响应: [ {
- 我在服务器数据库的不同表中存储了一些统计信息丰富的utf-8数据
- 所以我需要将所有表数据合并成json/其他格式
- 我可以在应用程序端使用web服务获得json/其他格式
例如(如果我们考虑JSON),我们考虑三个表:
- 表A(身份证、姓名、地址)
- 表B(键、值)
- 表C(标题、价格)
[
{
"A": [
{
"id": 1,
"name": "ABC",
"address": "XYZ"
},
{
"id": 2,
"name": "ABC",
"address": "XYZ"
}
]
},
{
"B": [
{
"key": "test",
"value": "XYZ"
},
{
"key": "test1",
"value": "LMN"
}
]
},
{
"C": [
{
"title": "PQR",
"price": 20.5
},
{
"title": "XYZ",
"price": 20
}
]
}
]
所以
你是说像这样的
//queries
$sql1 = "SELECT * from A";
$sql2 = "SELECT * from B";
$sql3 = "SELECT * from C";
//prepare
$stmt1 = $dbh->prepare( $sql1 );
$stmt2 = $dbh->prepare( $sql2 );
$stmt3 = $dbh->prepare( $sql3 );
//execute
$stmt1->execute();
$stmt2->execute();
$stmt3->execute();
//get results
$result1 = $stmt1->fetchAll( PDO::FETCH_ASSOC );
$result2 = $stmt2->fetchAll( PDO::FETCH_ASSOC );
$result3 = $stmt3->fetchAll( PDO::FETCH_ASSOC );
//convert to json
$json1 = json_encode($result1, true);
$json2 = json_encode($result2, true);
$json3 = json_encode($result3, true);
//merge jsons
$json = json_encode(array_merge($json1, $json2, $json3));
//echo result
echo $json;
你是说像这样的
//queries
$sql1 = "SELECT * from A";
$sql2 = "SELECT * from B";
$sql3 = "SELECT * from C";
//prepare
$stmt1 = $dbh->prepare( $sql1 );
$stmt2 = $dbh->prepare( $sql2 );
$stmt3 = $dbh->prepare( $sql3 );
//execute
$stmt1->execute();
$stmt2->execute();
$stmt3->execute();
//get results
$result1 = $stmt1->fetchAll( PDO::FETCH_ASSOC );
$result2 = $stmt2->fetchAll( PDO::FETCH_ASSOC );
$result3 = $stmt3->fetchAll( PDO::FETCH_ASSOC );
//convert to json
$json1 = json_encode($result1, true);
$json2 = json_encode($result2, true);
$json3 = json_encode($result3, true);
//merge jsons
$json = json_encode(array_merge($json1, $json2, $json3));
//echo result
echo $json;
您应该检查这2-3分钟中有多少时间花在网络传输时间上,而不是服务器生成数据上。如果几乎所有的时间都是在网络上,那么你就无法加快速度。无论服务器数据收集速度有多快,您不能更改传输速度。@MarcB我在5 MBPS网络上测试了上述场景,大约需要2-3分钟,在2G网络上大约需要9-10分钟。因此,我认为这会对Apps的用户体验造成不良影响。您应该检查这2-3分钟中有多少用于网络传输时间,而不是服务器生成数据。如果几乎所有的时间都是在网络上,那么你就无法加快速度。无论服务器数据收集速度有多快,都不能改变传输速度。@MarcB我在5 MBPS网络上测试了上述场景,大约需要2-3分钟,在2G网络上大约需要9-10分钟。因此我认为这会影响appYes的糟糕用户体验。是的,我做了如上所述的事情是的,我做了如上所述的事情