2017-04-09 4 views
0

私はvolleyを使用してamazonデータベースに接続し、テーブルの特定の値を "ON"と "OFF"の間で変更しています。私はonCheckedChangedとStringRequestを使ってこれを行い、 "ON"に手動で設定されている場合は値を "OFF"に変更します。しかし、 "OFF"から "ON"に変更しようとすると、私はvolley( "com.android.volley.ServerError")からサーバーエラーが発生し、値は変更されません。私のPHPは現時点ではローカルでホストされており、ログインと登録メソッドも正常に動作します。AndroidのサーバーエラーonCheckedChangedの 'if(isChecked)'のみの場合

のJava:

ToggleButton light = (ToggleButton) findViewById(R.id.lightSwitch); 
light.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (isChecked) { 
      StringRequest stringRequest = new StringRequest(Request.Method.POST, LOG_URL, 
        new Response.Listener<String>() { 
         @Override 
         public void onResponse(String response) { 
          Toast.makeText(DiningRoom.this, response, Toast.LENGTH_LONG).show(); 
         } 
        }, 
        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
          Toast.makeText(DiningRoom.this, error.toString(), Toast.LENGTH_LONG).show(); 
         } 
        }); 
      MySingleton.getInstance(DiningRoom.this).addToRequestqueue(stringRequest); 
     }else{ 
      StringRequest stringRequest2 = new StringRequest(Request.Method.POST, LOG_URL2, 
        new Response.Listener<String>() { 
         @Override 
         public void onResponse(String response) { 
          Toast.makeText(DiningRoom.this, response, Toast.LENGTH_LONG).show(); 
         } 
        }, 
        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
          Toast.makeText(DiningRoom.this, error.toString(), Toast.LENGTH_LONG).show(); 
         } 
        }); 
      MySingleton.getInstance(DiningRoom.this).addToRequestqueue(stringRequest2); 
     } 
    } 
}); 

PHP:このスクリプトは、ブラウザからロードされると 、それが正常にオフからオンに値を変更します。このエラーは、アンドロイドのボレーを通過した場合にのみ発生します。

<?php 
include 'dbConnect.php'; 

mysqli_query($conn,"UPDATE Component SET component_status = 'ON' WHERE component_id = 10"); 

?> 

私は、オンからオフへの切り替えを処理するための2番目のPHPファイルがあります。

答えて

0

component_statusがbooleanかtinyint(1)かどうかを確認してください。 tableを作成している間に、私はtinyint(1)という型を持っているテーブルを記述するときにbooleanとして型を与えました。

ユーザーdesc 'tableName'表の説明を参照してください。

タイプは

"UPDATE Component SET component_status = 1 WHERE component_id = 10" 

にクエリを変更TINYINTであるかのようにONとOFF 0として1を参照してください。

希望すると、これが役立ちます。

関連する問題