这是我在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";
任何帮助将不胜感激。 谢谢。
答案 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';
}