我有一个问题。我能够更新数据库中的数据,但无法返回成功消息。我正在解释下面的代码。
<?php
require_once("../include/dbconfig.php");
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$pro_info=$request->db_quantity_info;
$len=count($pro_info);
$fields=array("quantity");
$tablename=PREFIX."product_info";
for($i=0;$i<$len;$i++){
$pro_id=$pro_info[$i]->pro_Id;
$quantity=$pro_info[$i]->quantity;
$values=array($quantity);
$condn="pro_Id='".prepare_param($pro_id)."' ";
$id=db_update($tablename,$fields,$values,$condn);
}
if($id){
$return["msg"]="updated successfully";
}else{
header("HTTP/1.0 401 Unauthorized");
$return["msg"]="Unable to update";
}
echo json_encode($return);
?>
function db_update($table,$columns, $values, $condition=""){
global $con;
if($table=="" || $columns=="" || $values=="" || count($columns) != count($values)){
return false;
}
$updatestr="";
for($i=0;$i<count($columns);$i++){
if($updatestr==""){
$updatestr=" SET ".$columns[$i]." = '".$con->real_escape_string($values[$i])."'";
}else{
$updatestr.=" , ".$columns[$i]." = '".$con->real_escape_string($values[$i])."'";
}
}
if($condition !=""){
$condition=" WHERE ".$condition;
}
$sql = "UPDATE ".$table." ".$updatestr.$condition;
if($con->query($sql)){
return $con->affected_rows;
}else{
return false;
}
}
这里我的数据数组正在成功更新,但是else部分正在执行。当我通过返回它来测试$id
时,它总是显示为零。在DB内部更新后我需要成功消息返回。< / p>