严重的是,我不知道我的php脚本怎么了。我想通过php脚本将数据从android更新到MySQL。除timein外,所有列值都可以更新。我无法弄清楚代码中有什么问题。

php - PHP脚本中 undefined variable-LMLPHP

updateDetails.php

<?php

    if($_SERVER['REQUEST_METHOD']=='POST'){
        //Getting values
  $id =$_POST['id'];
  $project =$_POST['project'];
  $description =$_POST['description'];
  $progress =$_POST['percentage'];
  $timeIn =$_POST['timein'];
  $timeOut = $_POST['timeout'];

   require_once('dbConnect.php');

 $sql = "UPDATE work_details SET  project = '$project', work_description = '$description', percentage = '$progress', timeIn = '$timein' , timeOut ='$timeOut' WHERE id = $id;";

  //Updating database table
 if(mysqli_query($con,$sql)){
 echo ' Updated Successfully';
 }else{
 echo 'Could Not Update. Try Again';
 }
 //closing connection
 mysqli_close($con);
    }

 ?>


UpdateDetails函数

public void Update( final String project, final String description, final int progress, final String timeIn, final String timeOut)
{
    class UpdateInfo extends AsyncTask<Void,Void,String>{
        ProgressDialog loading;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(Edit_Details.this,"Updating...","Wait...",false,false);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();
            Toast.makeText(Edit_Details.this,s,Toast.LENGTH_LONG).show();
        }

        @Override
        protected String doInBackground(Void... params) {
            HashMap<String,String> hashMap = new HashMap<>();
            hashMap.put(Config.KEY_ID,ID);
            hashMap.put(Config.KEY_PROJECT,project);
            hashMap.put(Config.KEY_DESCRIPTION,description);
            hashMap.put(Config.KEY_PROGRESS,String.valueOf(progress));
            hashMap.put(Config.KEY_TIME_IN,timeIn);
            hashMap.put(Config.KEY_TIME_OUT,timeOut);
            RequestHandler rh = new RequestHandler();
            String s = rh.sendPostRequest(Config.URL_UPDATEDETAILS,hashMap);

            return s;
        }
    }

    UpdateInfo ue = new UpdateInfo();
    ue.execute();
}


设定档

  public static final String KEY_TIME_IN="timein";

最佳答案

您的SQL语句有

"... timeIn = '$timein' ..."


但是你在此之前声明变量为

$timeIn =$_POST['timein'];


确保修正大小写,使变量匹配。

10-04 12:14