XAMP 経由で Android アプリを MYSQL に接続しようとしています。他の同様の質問を探していましたが、どれも本当に役に立ちました。エミュレーターでコードを実行しようとしましたが、DB やその他の問題が発生しました。MYSQL のテーブルには、Sensors と Calibrated (両方とも文字列) の 2 つのフィールドがあります。cm.GetMobileUnits は正常に機能し、両方のフィールドを持つペアを返します。これは Android コードです。
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
try {
ArrayList<Pair<String, String>> stringList = cm.getMobileUnits("Mobile Device");
//Log.d("MYSQL", "Tuplas adquiridas");
String url="http://192.168.1.10/test.php";
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
for (int i = 0; i < stringList.size(); i++) {
Pair<String, String> pair = stringList.get(i);
nameValuePairs.add(new BasicNameValuePair("Sensors", pair.first));
nameValuePairs.add(new BasicNameValuePair("Calibrated", pair.second));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = httpClient.execute(httpPost);
httpResponse.getEntity().consumeContent();
}
} catch (UnsupportedEncodingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
そして私のPHPファイル:
<?php
$con = mysql_connect("localhost","root","1234");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("eHealthDroid", $con);
$sensors = $_POST['Sensors'];
$calibrated = $_POST['Calibrated'];
$sql = "INSERT INTO mobile_units(sensors,calibrated)values('$sensors', '$calibrated')";
mysql_query($sql) or die(mysql_error());
mysql_close($con);
?>
ここで別の質問があります... 電話で WIFI を使用するか 3G を使用するかによって出力が異なるのはなぜですか? どちらを使用する必要がありますか?
wifiで出力:
08-09 12:53:25.178: I/System.out(6926): [socket][0] connection /192.168.1.10:80;LocalPort=46210(0)
08-09 12:53:25.178: I/System.out(6926): [CDS]connect[/192.168.1.10:80] tm:90
08-09 12:53:25.179: D/Posix(6926): [Posix_connect Debug]Process com.pfc.ehealthdroid :80
08-09 12:53:25.505: I/System.out(6926): [socket][/192.168.1.15:46210]
08-09 12:53:25.505: I/System.out(6926): rx timeout:0
08-09 12:53:25.594: I/System.out(6926): rx timeout:1
08-09 12:53:25.595: I/System.out(6926): [CDS]EAGAIN or EWOULDBLOCK in Recvfrom
08-09 12:53:25.595: I/System.out(6926): [CDS]read is 0
08-09 12:53:25.595: I/System.out(6926): rx timeout:0
08-09 12:53:25.595: I/System.out(6926): rx timeout:0
08-09 12:53:25.624: I/System.out(6926): rx timeout:1
08-09 12:53:25.625: I/System.out(6926): [CDS]EAGAIN or EWOULDBLOCK in Recvfrom
.....
3G での出力:
08-09 12:56:42.024: I/System.out(7313): [socket][1:49104] exception
08-09 12:56:42.025: I/System.out(7313): [CDS]close[49104]
08-09 12:56:42.025: I/System.out(7313): close [socket][/0.0.0.0:49104]
08-09 12:56:42.025: W/System.err(7313): org.apache.http.conn.ConnectTimeoutException: Connect to /192.168.1.10:80 timed out
08-09 12:56:42.026: W/System.err(7313): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
08-09 12:56:42.026: W/System.err(7313): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
08-09 12:56:42.026: W/System.err(7313): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
08-09 12:56:42.026: W/System.err(7313): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
08-09 12:56:42.026: W/System.err(7313): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:363)
08-09 12:56:42.026: W/System.err(7313): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
08-09 12:56:42.026: W/System.err(7313): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
08-09 12:56:42.027: W/System.err(7313): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
08-09 12:56:42.027: W/System.err(7313): at com.pfc.ehealthdroid.MainActivity$1.run(MainActivity.java:362)
08-09 12:56:42.027: W/System.err(7313): at java.lang.Thread.run(Thread.java:856)
08-09 12:56:42.027: D/dalvikvm(7313): threadid=11: exiting
どんな助けでも素晴らしいでしょう!ありがとう