对于我的订购系统,当管理员插入订单时,我需要检查他为订单插入的客户是否存在于我的客户表中。
我正在尝试这样的事情,但没有运气..
$sql = "IF EXISTS(SELECT * FROM customer WHERE customer_id = '$customer')
THEN insert into `order` (customer_id, product, quantity, creation_time, order_note, order_employee)
values ('$customer', '$product', '$quantity', 'now()', '$note', '$employee')";
错误:第一行语法错误。
这有什么不对?
这是正确的方法吗?还有更好的方法吗?
答案 0 :(得分:2)
你可能想要这样做"向后" - 如果存在则插入:
$sql = "insert into `order` (customer_id, product, quantity, creation_time, order_note, order_employee)
select '$customer', '$product', '$quantity', now(), '$note', '$employee'
from dual
where EXISTS(SELECT * FROM customer WHERE customer_id = '$customer')";
答案 1 :(得分:1)
这是一个巧妙的技巧:
$sql = "INSERT INTO `order`
(`customer_id`, `product`, `quantity`,
`creation_time`, `order_note`, `order_employee`)
SELECT `customer_id`, '$product', '$quantity', now(), '$note', '$employee'
FROM `customer` WHERE `customer_id`='$customer'";
请注意,我相信您已经正确清理了变量!
但是,如果存在具有该ID的客户,则只会插入订单。
答案 2 :(得分:0)
我认为你应该以另一种方式思考你的问题。
继续步骤:
1 - 我需要知道客户是否存在客户?
$sql = "SELECT ID FROM customer WHERE customer_id = '$customer'";
2-我试试我的客户,他存在吗?
If(!empty($result_cust)){
$sql = insert into `order` (customer_id, product, quantity, creation_time, order_note, order_employee)
values ('$customer', '$product', '$quantity', 'now()', '$note', '$employee')";
}
通过这种方式,您的代码将更容易理解。
划分和规则
他们说。