如何在我的插入查询中使用where语句在PHP中为NOT NULL VALUE

时间:2012-11-02 14:20:24

标签: php mysql phpmyadmin

这是我在PHP中的查询我想要做什么如果RATE字段IS NULL然后记录可能不会插入我的MYSQL表中。我的查询在这里不起作用。它说检查WHERE附近的语法。 IT的工作正常,我在哪里。我有PHPMYADMIN。

$sql = "INSERT INTO `order`(`po_number`, `vendor_name`, `market`, `start_date`, `end_date`, `qty`, `rate`, `comment`, `media_type`, `sub_vendor`) VALUES ('$po_number1[$i]','$master_vendor1[$i]','$market1[$i]','$start_date1[$i]','$end_date1[$i]','$qty1[$i]','$rate1[$i]','$comment1[$i]','$media_type1[$i]','$sub_vendor1[$i]') WHERE `rate` IS NOT NULL";

任何帮助将不胜感激。 谢谢。

4 个答案:

答案 0 :(得分:1)

INSERT语句不包含WHERE。您应该使用UPDATE或使用PHP更改插入

答案 1 :(得分:1)

您不能在WHERE查询中拥有INSERT INTO条款。在执行插入查询之前,您必须执行任何条件逻辑。插入查询会添加一个新行,因此根据定义,不会有用于计算WHERE子句的行。您想要UPDATE查询吗?

$errors = array(); // declare this before your loop

if($rate1[$i] == 0 || $rate1[$i] == null)
{
    // rate is 0 or null, add error
    $errors[] = 'Rate is invalid';
}
else
{
    $sql = "INSERT INTO `order`(`po_number`, `vendor_name`, `market`, `start_date`, `end_date`, `qty`, `rate`, `comment`, `media_type`, `sub_vendor`) VALUES ('$po_number1[$i]','$master_vendor1[$i]','$market1[$i]','$start_date1[$i]','$end_date1[$i]','$qty1[$i]','$rate1[$i]','$comment1[$i]','$media_type1[$i]','$sub_vendor1[$i]')";
    // execute $sql
}

完成循环后,您可以显示任何错误:

<ul>
    <?php foreach($errors as $e): ?>
    <li><?php echo $e; ?></li>
    <?php endforeach; ?>
</ul>

答案 2 :(得分:0)

没有条件插入这样的东西。你需要确保插入的内容是正确的。因此,遍历您的集合并仅插入符合条件的行

答案 3 :(得分:0)

在遇到创建连接和发出查询的开销之前,你可能会在PHP中检查这个:

if (isset($rate1[$i])) {
    // prepare and execute the insert
} else {
    echo 'Rate cannot be null';
}