0

这是我在 PHP 中的查询,如果 RATE 字段为 NULL,我想做什么,那么记录可能不会插入到我的 MYSQL 表中。我的查询在这里不起作用。它说在 WHERE 附近检查语法。它工作正常没有 where.I 有 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

4 回答 4

1

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

于 2012-11-02T14:23:27.413 回答
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>
于 2012-11-02T14:24:21.760 回答
0

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

于 2012-11-02T14:24:07.393 回答
0

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

if (isset($rate1[$i])) {
    // prepare and execute the insert
} else {
    echo 'Rate cannot be null';
}
于 2012-11-02T14:25:35.863 回答