title: How to Update Data using PHP MYSQL in Android
body: <p>I am writing an app in which I need to update data using <em>PHP MySQL</em>, and every time I am getting message <em>"Update Data Successfully"</em>. But whenever I see into my database, I am not getting any changes in values.</p>
  
  <p><strong>Logcat says:</strong></p>
  
  <pre><code>  09-04 12:00:50.176: D/gralloc_goldfish(538): Emulator without GPU emulation detected.
  09-04 12:08:38.646: D/InputEventConsistencyVerifier(538): KeyEvent: ACTION_UP but key was not down.
  09-04 12:08:38.646: D/InputEventConsistencyVerifier(538):   in com.android.internal.view.menu.ExpandedMenuView@4136ec30
  09-04 12:08:38.646: D/InputEventConsistencyVerifier(538):   0: sent at 552986000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_MENU, scanCode=229, metaState=0, flags=0x8, repeatCount=0, eventTime=552986, downTime=552899, deviceId=0, source=0x101 }
  09-04 12:08:39.885: D/(538): UserLoginAppointmentActivity txtPhone[before] :: android.widget.EditText@41389238
  09-04 12:08:39.885: D/(538): UserLoginAppointmentActivity txtPass[before] :: android.widget.EditText@4138acb0
  09-04 12:08:40.205: W/TextLayoutCache(538): computeValuesWithHarfbuzz -- need to force to single run
  09-04 12:08:42.976: D/dalvikvm(538): GC_CONCURRENT freed 131K, 3% free 10157K/10375K, paused 6ms+4ms
  09-04 12:08:46.357: D/InputEventConsistencyVerifier(538): KeyEvent: ACTION_UP but key was not down.
  09-04 12:08:46.357: D/InputEventConsistencyVerifier(538):   in android.widget.EditText@4138acb0
  09-04 12:08:46.357: D/InputEventConsistencyVerifier(538):   0: sent at 561313000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_TAB, scanCode=15, metaState=0, flags=0x8, repeatCount=0, eventTime=561313, downTime=561190, deviceId=0, source=0x101 }
  09-04 12:08:49.746: D/(538): UserLoginAppointmentActivity txtPhone :: android.widget.EditText@41389238
  09-04 12:08:49.746: D/(538): UserLoginAppointmentActivity txtPass :: android.widget.EditText@4138acb0
  09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity resultServer :: {"StatusID":"1","UserID":"24","Error":"Login Ok"}
  09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strStatusID[before] :: 0
  09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strUserID[before] :: 0
  09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strError[before] :: Unknow Status!
  09-04 12:08:50.066: D/(538): UserLoginAppointmentActivity strStatusID[after] :: 1
  09-04 12:08:50.076: D/(538): UserLoginAppointmentActivity strUserID[after] :: 24
  09-04 12:08:50.076: D/(538): UserLoginAppointmentActivity strError[after] :: Login Ok
  09-04 12:08:50.105: D/(538): UserLoginAppointmentActivity UserID Intent :: 24
  09-04 12:08:51.496: D/dalvikvm(538): GC_CONCURRENT freed 204K, 4% free 10345K/10695K, paused 5ms+5ms
  09-04 12:08:55.475: D/(538): sAppointmentID :: 24
  09-04 12:08:55.475: D/(538): sAppointmentID :: 53
  09-04 12:08:56.166: D/(538): resultServer - getByMemberIDR:: {"UserID":"24","AppointmentID":"53","Type":"Cardiology","Date":"12-09-2013","Time":"22:15","Status":"Pending"}
  09-04 12:08:56.166: D/(538): strUserID :: 24
  09-04 12:08:56.176: D/(538): strAppointmentID :: 53
  09-04 12:08:56.176: D/(538): strType :: Cardiology
  09-04 12:08:56.176: D/(538): strDate :: 12-09-2013
  09-04 12:08:56.176: D/(538): strTime :: 22:15
  09-04 12:11:06.866: D/dalvikvm(538): GC_CONCURRENT freed 278K, 4% free 10459K/10887K, paused 7ms+7ms
  09-04 12:15:36.425: D/(538): resultServer - updateData:: {"StatusID":"1","Message":"updated"}
  09-04 12:15:37.015: D/dalvikvm(538): GC_CONCURRENT freed 330K, 5% free 10572K/11015K, paused 7ms+9ms
  </code></pre>
  
  <p><strong>PHP Script:</strong></p>
  
  <pre><code>&lt;?php
  $objConnect = mysql_connect("localhost","root","");
  $objDB = mysql_select_db("android");
  
  $strUserID = $_POST["sUserID"];
  $strAppointmentID = $_POST["sAppointmentID"];
  
  $strType = $_POST["sType"];
  $strDate = $_POST["sDate"];
  $strTime = $_POST["sTime"];
  
  /*** Update ***/
  $strSQL = " UPDATE book_appointment SET 
  Type = '".$strType."',
  Date = '".$strDate."',
  Time = '".$strTime."' 
  WHERE AppointmentID = '".$strAppointmentID."' ";
  
  $objQuery = mysql_query($strSQL);
  if(!$objQuery)
  {
       $arr['StatusID'] = "0";
       $arr['Message'] = "Cannot save data!";   
  }
  else
  {
       $arr['StatusID'] = "1";
       $arr['Message'] = "updated";
  }
  mysql_close($objConnect);
  echo json_encode($arr);
  ?&gt;
  </code></pre>
  
  <p><strong>UpdateActivity.java:-</strong></p>
  
  <pre><code>public class UpdateActivity extends Activity {
  
      private static final String tag = null;
  
          @SuppressLint("NewApi")
          @Override
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_update);
  
          // Permission StrictMode
          if (android.os.Build.VERSION.SDK_INT &gt; 9) {
          StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
          StrictMode.setThreadPolicy(policy);
          }
  
          showInfo();
  
          // btnSave
          Button btnSave = (Button) findViewById(R.id.btnSave);
          // Perform action on click
          btnSave.setOnClickListener(new View.OnClickListener() {
          public void onClick(View v) {
          if(SaveData())
          {
          // When Save Complete
          Intent newActivity = new Intent(UpdateActivity.this,RescheduleActivity.class);
          startActivity(newActivity);
          }
          }
          });
  
  
          // btnCancel
          final Button btnCancel = (Button) findViewById(R.id.btnCancel);
          // Perform action on click
          btnCancel.setOnClickListener(new View.OnClickListener() {
          public void onClick(View v) {
          Intent newActivity = new Intent(UpdateActivity.this,RescheduleActivity.class);
          startActivity(newActivity);
          }
          });
  
          }
  
          public void showInfo()
          {
          // txtMemberID,txtUsername,txtPassword,txtConPassword,txtName,txtEmail,txtTel
          final TextView tUserID = (TextView)findViewById(R.id.txtUserID);
          final TextView tAppointmentID = (TextView)findViewById(R.id.txtAppointmentID);
          final TextView tType = (TextView)findViewById(R.id.txtType);
          final TextView tDate = (TextView)findViewById(R.id.txtDate);
          final TextView tTime = (TextView)findViewById(R.id.txtTime);
  
  
          Button btnSave = (Button) findViewById(R.id.btnSave);
          Button btnCancel = (Button) findViewById(R.id.btnCancel);
  
          String url = "http://10.0.2.2/appointments/getByMemberIDR.php";
  
          Intent intent= getIntent();
          final String UserID = intent.getStringExtra("UserID");
          final String AppointmentID = intent.getStringExtra("AppointmentID");
  
          List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
          params.add(new BasicNameValuePair("sUserID", UserID));
          params.add(new BasicNameValuePair("sAppointmentID", AppointmentID));
  
          String resultServer  = getHttpPost(url,params);
          Log.d(tag, "resultServer - getByMemberIDR:: " + resultServer);
  
          String strUserID = "";
          String strAppointmentID = "";
          String strType = "";
          String strDate = "";
          String strTime = "";
  
          JSONObject c;
          try {
          c = new JSONObject(resultServer);
  
          strUserID = c.getString("UserID");
          Log.d(tag, "strUserID :: " + strUserID);
          strAppointmentID = c.getString("AppointmentID");
          Log.d(tag, "strAppointmentID :: " + strAppointmentID);
          strType = c.getString("Type");
          Log.d(tag, "strType :: " + strType);
          strDate = c.getString("Date");
          Log.d(tag, "strDate :: " + strDate);
          strTime = c.getString("Time");
          Log.d(tag, "strTime :: " + strTime);
  
          if(!strUserID.equals(""))
          {
          tUserID.setText(strUserID);
          tAppointmentID.setText(strAppointmentID);
          tType.setText(strType);
          tDate.setText(strDate);
          tTime.setText(strTime);     
          }
          else
          {
          tUserID.setText("====");
          tAppointmentID.setText("====");
          tType.setText("====");
          tDate.setText("====");
          tTime.setText("====");
          btnSave.setEnabled(false);
          btnCancel.requestFocus();
          }
  
          } catch (JSONException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }        
      }
  
  
          public boolean SaveData()
          {
          // txtMemberID,txtPassword,txtName,txtEmail,txtTel
  
          final EditText txtType = (EditText)findViewById(R.id.txtType);
          final EditText txtDate = (EditText)findViewById(R.id.txtDate);
          final EditText txtTime = (EditText)findViewById(R.id.txtTime);
  
          //Dialog
          final AlertDialog.Builder ad = new AlertDialog.Builder(this);
  
          ad.setTitle("Error! ");
          ad.setIcon(android.R.drawable.btn_star_big_on);
          ad.setPositiveButton("Close", null);
  
          String url = "http://10.0.2.2/appointments/updateData.php";
  
          List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
  
          params.add(new BasicNameValuePair("sType", txtType.getText().toString()));
          params.add(new BasicNameValuePair("sDate", txtDate.getText().toString()));
          params.add(new BasicNameValuePair("sTime", txtTime.getText().toString()));
  
          String resultServer  = getHttpPost(url,params);
          Log.d(tag, "resultServer - updateData:: " + resultServer);
  
          /*** Default Value ***/
          String strStatusID = "0";
          String strMessage = "Unknow Status!";
  
          JSONObject c;
          try {
          c = new JSONObject(resultServer);
          strStatusID = c.getString("StatusID");
          strMessage = c.getString("Message");
          } catch (JSONException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
  
          // Prepare Save Data
          if(strStatusID.equals("0"))
          {
          ad.setMessage(strMessage);
          ad.show();
          return false;
          }
          else
          {
          Toast.makeText(UpdateActivity.this, "Update Data Successfully", Toast.LENGTH_SHORT).show();
          }        
  
          return true;
          }
  
          public String getHttpPost(String url,List&lt;NameValuePair&gt; params) {
          StringBuilder str = new StringBuilder();
          HttpClient client = new DefaultHttpClient();
          HttpPost httpPost = new HttpPost(url);
  
          try {
          httpPost.setEntity(new UrlEncodedFormEntity(params));
          HttpResponse response = client.execute(httpPost);
          StatusLine statusLine = response.getStatusLine();
          int statusCode = statusLine.getStatusCode();
          if (statusCode == 200) { // Status OK
          HttpEntity entity = response.getEntity();
          InputStream content = entity.getContent();
          BufferedReader reader = new BufferedReader(new InputStreamReader(content));
          String line;
          while ((line = reader.readLine()) != null) {
          str.append(line);
          }
          } else {
          Log.e("Log", "Failed to download result..");
          }
          } catch (ClientProtocolException e) {
          e.printStackTrace();
          } catch (IOException e) {
          e.printStackTrace();
          }
          return str.toString();
          }        
  }
  </code></pre>