严重的是,我不知道我的php脚本怎么了。我想通过php脚本将数据从android更新到MySQL。除timein
外,所有列值都可以更新。我无法弄清楚代码中有什么问题。
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'];
确保修正大小写,使变量匹配。