I'm a noob at Java & PHP, I don't understand how this doesn't work. What I want to do is when I press a button in my Android app I want this PHP script to be executed:
<?php
mysql_connect("x","x","x"); // host, username, password...
mysql_select_db("x"); // db name...
$id=$_GET["id"];
$status=$_GET["status"];
mysql_query("UPDATE list SET status = $status WHERE id = $id");
mysql_close();
?>
and this is what is supposed to trigger it:
public void insertDataToDB(int id, int status) {
try {
HttpGet httpget = new HttpGet("http://10.0.2.2/SetStatus.php?id=" + id + "&status=" + status);
Log.d("link", "http://10.0.2.2/SetStatus.php?id=" + id + "&status=" + status);
httpclient.execute(httpget);
} catch (Exception e) {
Log.e("insertDataToDB", "ERROR : " + e.getMessage());
}
}
This is my error message:
23:40:51.270: insertDataToDB(1914): ERROR : null
I've tried using both HttpGet and HttpPost as well as _GET and _POST in the php script, but nothing seems to work so I just stuck with _GET as the script works when i write the link into my browser. I need help, thanks in advance! :)
(it does not make any difference if i cast id & status to strings nor if i set them to constant values.)
UPDATE
Error log:
11-15 00:05:57.700: E/insertDataToDB(2080): android.os.NetworkOnMainThreadException
11-15 00:05:57.700: E/insertDataToDB(2080): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
11-15 00:05:57.700: E/insertDataToDB(2080): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:110)
11-15 00:05:57.700: E/insertDataToDB(2080): at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
11-15 00:05:57.700: E/insertDataToDB(2080): at libcore.io.IoBridge.connect(IoBridge.java:122)
11-15 00:05:57.700: E/insertDataToDB(2080): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
11-15 00:05:57.700: E/insertDataToDB(2080): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
11-15 00:05:57.700: E/insertDataToDB(2080): at java.net.Socket.connect(Socket.java:882)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11-15 00:05:57.700: E/insertDataToDB(2080): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11-15 00:05:57.700: E/insertDataToDB(2080): at com.example.fibergruppenlista.DataBase.insertDataToDB(DataBase.java:34)
11-15 00:05:57.700: E/insertDataToDB(2080): at com.example.fibergruppenlista.ListClickListener$2.onClick(ListClickListener.java:47)
11-15 00:05:57.700: E/insertDataToDB(2080): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:160)
11-15 00:05:57.700: E/insertDataToDB(2080): at android.os.Handler.dispatchMessage(Handler.java:102)
11-15 00:05:57.700: E/insertDataToDB(2080): at android.os.Looper.loop(Looper.java:135)
11-15 00:05:57.700: E/insertDataToDB(2080): at android.app.ActivityThread.main(ActivityThread.java:5221)
11-15 00:05:57.700: E/insertDataToDB(2080): at java.lang.reflect.Method.invoke(Native Method)
11-15 00:05:57.700: E/insertDataToDB(2080): at java.lang.reflect.Method.invoke(Method.java:372)
11-15 00:05:57.700: E/insertDataToDB(2080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
11-15 00:05:57.700: E/insertDataToDB(2080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
I tried using an asynctask<void, void, void>
but I can't get it to work, the insertDataToDB
method is by the way not located inside of the MainActivity.java class.