如何在php中准备INSERT INTO SELECT查询?

时间:2018-06-02 15:53:35

标签: php mysql sql prepared-statement insert-into

我尝试将商品从购物车(从cart_product)复制到order_product表

通过准备列名称成为order_id

的值,此查询是否可以这样工作
    // Create the order

    $order_id = $this->order->store();

    // Copy products from cart and assign them to the order

    $req = "INSERT INTO order_product (order_id, product_id)
    SELECT :order_id, product_id, 
    FROM cart_product, cart
    WHERE cart.user_id = :id";

    $bind = array(
        "id" => $_SESSION['id'],
        "order_id" => $order_id
    );

    return  $this->Sql($req);

我正在使用微型框架,其中包含Sql功能。

我希望查询变成这样的

INSERT INTO order_product (order_id, product_id)
SELECT 3, product_id, 
FROM cart_product, cart
WHERE cart.user_id = 2

1 个答案:

答案 0 :(得分:0)

解决方案:问题是由FROM行末尾的逗号引起的。这就是造成问题的原因,而不是无法将列绑定为值。我没有错误消息,因为我使用的是微型专有框架。