基于 PHP 的 MySQL 查询存在一些语法问题,如何添加另一个“where”子句? [关闭]

问题描述 投票:0回答:1
 } else {
    $sql = "update products 
                set products_quantity = '" . $qty . "', 
                    products_last_modified = '" .date("Y-m-d H:i:s")."' 
            where " . PRODUCT_ID . "= '" . $model_no . "'";

    $result = mysql_query($sql);      // this executes the sql
  }
 } 
}                                   // back up to process next item

// and finally, close the db and we are done.
tep_db_close();

?>

感谢原始作者在线发布的开源插件的代码,当前查询正在更新产品记录的库存水平,当传递给它的产品 ID 匹配并设置最后修改日期时。

我还尝试添加另一个 where 子句,如果“products_status = 1”这是 MySQL 数据库中的另一个字段,sql 查询也只需要执行记录更新,我只想更新此标志为 1 的记录。我尝试添加这一行,但我显然弄乱了语法。

请不要笑,但我试过类似的东西

    $sql = "update products 
                set products_quantity = '" . $qty . "', 
                    products_last_modified = '" .date("Y-m-d H:i:s")."' 
            where " . PRODUCT_ID . "= '" . $model_no . "' 
            AND " . products_status . "= '" . "'1" . "'";

没用

php sql mysql where-clause oscommerce
1个回答
-1
投票

我认为你已经达到了90%。 WHERE 子句的一般形式是:

WHERE
   field_1 = 'some specific value' AND
   field_2 = 1233  -- also a specific value

WHERE 子句的原始代码是:

           where " . PRODUCT_ID . "= '" . $model_no . "'";

在我看来,

PRODUCT_ID
是一个包含字段名称的变量,而
$model_no
是值。虽然,我有可能倒退了。

您添加的代码是:

AND " . products_status . "= '" . "'1" . "'"

我不确定

products_status
是否是一个包含字段名称的变量,但我猜它是。现在,该行的其余部分出现了问题。你有
" '" . "'1" . "'"
这将评估为
''1'
,这是一个太多的单引号。如果
product_status
是varchar或类似的,你只需要
"='1'"
如果它是你想要的数字类型
"=1"
.

© www.soinside.com 2019 - 2024. All rights reserved.