Saturday, 4 May 2013

Connecting to a remote mysql database using php and Android?

Connecting to a remote database has been a Herculean Task for some programmers. No more worries here is a simple post to make it really simple. Follow these steps exactly to get it done.

Remember these when you are working with an online database.

1. Make sure that you have a running server.
2. INTERNET permission should be present in the AndroidManifest file of your app.
3. The path that you give in your program to point to the server file should be correct.

After ensuring all these you are ready to go.

First we will start with the Server side. Here I am going with a PHP example.

I am getting a value from the Android side by using a variable say "my_val".
Then the PHP script will look like this.
Note that here I am only sending one value from the Android side to the PHP Side.
so the Server side code will look like this.


$val = $_POST['my_val'];
echo $val;


Look at the varaible name inside the $_POST. Make sure that you use the same variable name in the Android side also. It is also case sensitive.

Here I am echoing back any value that is sending from the Android side.
You can do anything with it in the server side. Here I am just echoing it back.
You can simply insert it into a database and echo something else. Anything you echo will be received by the Android

Our Server side code is complete
Now we switch on to the Android side.

This is the code that connects with the server.


Thread thread = new Thread()
		 {
			 @Override public void run()
			 {
				 try
			 {
					 httpclient=new DefaultHttpClient();
					 httppost= new HttpPost("your url");
			 }
		 }
		   // make sure the url is correct.
		   //add your data
		   nameValuePairs = new ArrayList<NameValuePair>(1);
		   nameValuePairs.add(new BasicNameValuePair("my_val","my Test value from the Android Side"));
		   httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
		 //Execute HTTP Post Request response=httpclient.execute(httppost);
		   ResponseHandler<String> responseHandler = new BasicResponseHandler();
		   final String response = httpclient.execute(httppost, responseHandler);
		   System.out.println("Response : " + response);
		 }
		 catch(Exception e)
		 {
			 System.out.println("Exception : " + e.getMessage());
		 }
		 }
	};
	thread.start();



If you are working on LocalHost use url "http://10.0.0.2/your_folder_address.php"

OK Done. You have successfully connected to a remote server. Check your LogCat for the value from the server Make sure you have internet connection before doing this, otherwise exception will be thrown. By this way you can send any number of variables from the Android side to the PHP side but make sure that both have the same name (case sensitive).

No comments:

Post a Comment