如果表1中存在值,则插入表2 mysql

时间:2014-04-11 13:03:51

标签: php mysql if-statement

对于我的订购系统,当管理员插入订单时,我需要检查他为订单插入的客户是否存在于我的客户表中。
我正在尝试这样的事情,但没有运气..

$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')";

错误:第一行语法错误。 这有什么不对?
这是正确的方法吗?还有更好的方法吗?

3 个答案:

答案 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')";
}

通过这种方式,您的代码将更容易理解。

  

划分和规则

他们说。