私が開発している Andriod アプリは、Web サイトで PHP ファイルを使用して Http Gets/Posts を使用し、mysql データベースでトランザクションを実行しています。
PHP 側では、データを JSON でラップして、応答を受信したときにアプリケーションの Java 側で解析します。最近、テーブルの 1 つを変更し、テーブルから不要な値を削除しました。Web サイトから PHP スクリプトを使用してポーリングすると、正しくポーリングされます。ポーリングに同じ PHP スクリプトを使用するアプリを使用すると、データベースから既に削除した追加の値が返されます。
Eclipse を再起動し、プロジェクトをクリーンアップし、Android VDM を再起動して更新しました。ただし、削除された値は引き続き検索されます。何が起こっているかについてのアイデアはありますか?
アプリから接続しているphpスクリプトは次のとおりです。
<?php
mysql_connect("localhost", "******", "******");
mysql_select_db("bouncet2_pogoapp");
$query = "SELECT * FROM Event_Table ORDER BY Event ASC";
$sql = mysql_query($query);
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>
スクリプトを使用したアプリ内のコードについては、次のとおりです。
try {
String response = CustomHttpClient.executeHttpGet("http://www.*****.com/****/****/***/GetEvents.php");
//System.out.println(response);
try {
eventArray = new JSONArray(response);
//Log.i(SelectEventActivity.class.getName(), "Number of entries " + eventArray.length());
m_adapterForSpinner = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
m_adapterForSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
event_Spinner.setAdapter(m_adapterForSpinner);
for (int i = 0; i < eventArray.length(); i++) {
JSONObject jsonObject = eventArray.getJSONObject(i);
m_adapterForSpinner.add(jsonObject.getString("Event"));
//Log.i(AddJumpersActivity.class.getName(), jsonObject.getString("Event"));
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
関数 executeHttpGet(URL) はクラス CustomHttpClient の一部であり、次のとおりです。
public static String executeHttpGet(String url) throws Exception {
StringBuilder builder = new StringBuilder();
HttpClient client = getHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(url));
try {
HttpResponse response = client.execute(request);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
Log.i(CustomHttpClient.class.toString(), "System Status OK");
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} else {
Log.e(CustomHttpClient.class.toString(), "Failed to download file");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return builder.toString();
}