php - 在一个查询 API 和 PHP 中插入或更新

标签 php html mysql angularjs api

我有一个可以编辑和添加语言的产品。在我当前的 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/

相关文章:

php - 用 PHP 在 txt 文件上写一个新行?

javascript - 为什么 window.open 前面加上默认 url?

javascript - 在 firebase 中存储 Youtube 视频 URL,然后在 <iframe> 中插入 URL 不显示视频

mysql - 使用 seed_dump gem 获取所有模型的 ID

MYSQL 插入语法错误

php - 用零填充数组

java - 如何在 PHP 中使用 PKCS8 编码的私钥

来自不同表的mysql的PHP图像显示

css - { float : left;} Not working

android - 我应该为不同的对象动态创建新表吗?