我有参数及其值的列表。我想根据值是否存在来构建 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/