php - 根据条件创建mysql更新字符串

标签 php mysql

我有参数及其值的列表。我想根据值是否存在来构建 mysql 更新字符串。使用如下 if 条件进行检查的一种方法

if (!empty($value['p_status']) || !empty($value['quantity'])){
      $strSet = '';
      if (!empty($value['p_status'])) {
             $strSet .= "status='$value[p_status]',";
       }
      if (!empty($value['quantity'])) {
            $strSet .= "amount='$value[quantity]',";
      }
      if (!empty($value['shipping_freight'])) {
          $strSet .= "shipping_freight='$value[shipping_freight]',";
      }
   }
   $strSet = trim($strSet,',');
   db_query("update table1 set ".$strSet." where pr1=123");

但是参数可能有很多。有没有更好的办法?

最佳答案

为了避免编写太多 if 条件,只需使用循环即可。

foreach($values as $key=>$value)
{
    if(!empty($value))
        str = str." $key = '$value',";
}
$str=trim($str,',');

关于php - 根据条件创建mysql更新字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31217554/

相关文章:

php - 获取mysql中存储过程的数组输出

mysql - 使用 UNION ALL 从多个表返回单个结果字段值作为结果数据集中记录的一部分

php - Django 、Python : Is there a simple way to convert PHP-style bracketed POST keys to multidimensional dict?

php - 在另一个函数中使用 php 的魔术函数不起作用

MYSQL HAVING 包含不存在的条目

php - 如何从本地主机到同一网络上的其他计算机访问PHP文件和SQL DB?

php - 使用 AJAX/JQUERY 的简单 Crud

php - sql中的第2组AND语句

php - 在 PHP 上使用 xpath : how to select first child?

PHP 错误地处理了我的静态调用