我有一个可以编辑和添加语言的产品。在我当前的 api 中,如果已经有一种语言,它可以显示并可以更新,但我的问题是,如果没有附加详细信息,例如,我在编辑时输入了新的详细信息,则数据不会保存在数据库。
if(!empty($body['addtl'])){
$ProdArray = "";
foreach($body['addtl'] as $value){
foreach($value as $key => $innerValue){
if($key!="id")
if(!empty($innerValue))
$ProdArray .= $key."='".$innerValue."', ";
}
$ProdArray = trim($ProdArray, ", ");
$ProdArray .= " WHERE id=".$value['id'];
$sql_query = "UPDATE ProductAddtlDetails SET ".$ProdArray;
$stmt = $dbRemote->prepare($sql_query);
$stmt->execute();
$ProdArray = "";
}
$editFlag = 1;
}
如何解决我的问题?
最佳答案
首先,我们可以启用错误模式,以便您可以将其放在连接之后:
$dbRemote->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
然后将代码更改为:
if(!empty($body['addtl'])){
$ProdArray = "";
foreach($body['addtl'] as $value){
foreach($value as $key => $innerValue){
if($key!="id" && !empty($innerValue)) {
$ProdArray .= $key."=". $innerValue. ", ";
}
}
$ProdArray = rtrim($ProdArray, ", ");
$ProdArray .= " WHERE id=".$value['id'];
$sql_query = "UPDATE ProductAddtlDetails SET ".$ProdArray;
$stmt = $dbRemote->prepare($sql_query);
$stmt->execute();
$ProdArray = "";
}
$editFlag = 1;
}
关于php - 在一个查询 API 和 PHP 中插入或更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444467/