我将分享如何使用 PHP 文件在 Android 应用程序和 PHP 服务器之间同步数据,它比 Web 服务等更容易。它给出相同的结果和相同的返回。
查询
* - > PHP端:*
- 例如,创建您的表结构: MyTableName :列 Login / Password
创建一个 PHP 文件以从您的表名中查询数据
<?php
//To Connect to your Data base
mysql_connect("localhost","root","");
mysql_select_db("YourDataBaseName");
// To execute a query from Your table
$sql=mysql_query("SELECT * FROM `Your_Table_Name");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
// Convert to Json format
print(json_encode($output));
// mysql_close();
?>
将您的 PHP 文件命名为您的表格名称,例如:MyTableName.php
将此文件放在您的根服务器目录中:例如在 Wamp 服务器中的 www 目录
使用浏览器测试返回数据,使用您的 URL,如
www.localhost/MyTableName.php,通常您将获得所有 Json 格式的查询内容。
* -> 安卓端:*
下载这个类'ClientHTTP' https://www.dropbox.com/s/odpaus1tjhd9orv/ClientHTTP.java
在清单中添加 Internet 权限。
在单击按钮 Synchronize put 内:
String lReturn=_myClientHtpp.readFromUrl(www.localhost/MyTableName.php);
// It will return a json format (Like navigator)
//Code to Clear your data from Sqlite data base TABLE ....
try {
// Create your Json Array
JSONArray lList=new JSONArray(lReturn);
// Iterate the json arry to get each Json object
for (int i = 0; i < lList.length(); i++) {
JSONObject lObject=lList.getJSONObject(i);
String lLogin=lObject.getString("Login");
String lPWD=lObject.getString("PassWord");
//Code to Insert in Sqlite data base .....
}
} catch (JSONException e) {
e.printStackTrace();
}
更新
* - > PHP端:*
<?php
//Connect to Database
mysql_connect("localhost","root","");
mysql_select_db("YourDataBase");
$sql= mysql_query("INSERT INTO YourTableName (Login,PassWord) VALUES ('".$_REQUEST['PARAM_Login']."','".$_REQUEST['PARAM_PWD']."')");
if($sql==1){
echo "true";
}else{
echo "false";
}
// mysql_close();
?>
* -> 安卓端:*
在单击“添加”按钮内写入:
// List of params
ArrayList<NameValuePair> lListOfParams=new ArrayList<NameValuePair>();
// Param login
BasicNameValuePair PARAM_Login=new BasicNameValuePair("PARAM_Login", "test from Android");
// Param PWD
BasicNameValuePair PARAM_PWd=new BasicNameValuePair("PARAM_PWD", "Test from Android");
// Add params to List
lListParams.add(PARAM_Login);
lListParams.add(PARAM_PWd);
// Execute the post method from your ClientHttp class
boolean lIsInsert=_myClientHtpp.SendToUrl("www.localhost/insert.php", lListOfParams);
if(lIsInsert)
Toast.makeText(this, "Insert Success", Toast.LENGTH_LONG).show();
else
Toast.makeText(this, "Insert Error", Toast.LENGTH_LONG).show();
如果您有自己的服务器,请根据您的域名替换 localhost。
如果您使用的是模拟器,请根据您的实际 IP 地址替换您的 localhost 域名
,例如查询 URL 变为:192.168.1.2/MyTableName.php