0

我使用将数据从数组中的循环插入数据库的代码。

foreach ($sumdrinks1 as $key => $value)    // insert each part of array into DB
{
mysql_query("INSERT INTO table (liq_sum, liq_name, bartender)
VALUES ('$value','$key','$id'))";
}  

因为我不需要 $value = 0 的结果,所以我运行另一个查询从数据库中删除它们

mysql_query("DELETE FROM table WHERE liq_sum = 0");

有没有办法在插入查询中添加 if Condition 而不是插入它们并删除它们?我尝试了一些想法,例如:

 ("INSERT INTO table (liq_sum, liq_name, bartender) 
 VALUES ('$value','$key','$id') where '$value' > 0)";

没用:(

谢谢你。

4

3 回答 3

5

你可以在php中做到这一点

    foreach ($sumdrinks1 as $key => $value)    // insert each part of array into DB
    {
     if($value>0)
     mysql_query("INSERT INTO table (liq_sum, liq_name, bartender) VALUES     ('$value','$key','$id')");
    }  
于 2013-03-06T06:37:33.317 回答
3

if使用语句检查值:

foreach ($sumdrinks1 as $key => $value)  
{
   if ($value > 0) {
      ... // do insert
   }
}  

请注意: mysql_不推荐使用扩展,并且这种方式的代码容易受到SQL 注入的影响,请改用PDO或准备好的语句。

于 2013-03-06T06:37:34.837 回答
0

您可以在 php 代码本身中检查此条件。

foreach ($sumdrinks1 as $key => $value)    // insert each part of array into DB

{
    if($value > 0) {
         mysql_query("INSERT INTO table (liq_sum, liq_name, bartender) VALUES ('$value','$key','$id'))";

    }

}
于 2013-03-06T06:38:40.243 回答