Я пытаюсь скопировать товары из корзины (из 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
Нет, я просто пытаюсь скопировать продукты из корзины, принадлежащие конкретному покупателю, и создать с ними заказ, а затем очистить корзину от всех продуктов.
Вы копируете все записи из cart_product, а не только из корзины покупателя.
Ну cart_product - это корзина покупателя. У каждого покупателя есть одна корзина, которая обновляется после каждой проверки заказа. Я указал, что копирую только те, которые принадлежат конкретному владельцу корзины, используя предложение WHERE. Я ошибся ?
Вы не можете связать столбцы. Вы ведь это знаете?
Я подумал, что, поскольку мы можем выполнять математические операции с оператором SELECT, например (SELECT 7 + 5), возможно, мы могли бы сделать то же самое с подготовленными запросами.
Итак, как я могу скопировать часть данных из таблицы и подготовить вторую половину?
@ GerardH.Pille Тебе стоит кое-чему научиться. Посмотрите stackoverflow.com/questions/182287/…
@AkintundeOlawale, и я надеялся кое-что узнать, но это было только то, что вы, кажется, игнорировали разницу между столбцом и именем столбца. Снова: попробуйте "select: bindvar from ...".






Решение: проблема была вызвана запятой в конце строки ОТ. Это было причиной проблемы, а не невозможность привязать столбцы как значения. У меня не было сообщений об ошибках, потому что я использую проприетарный фреймворк.
Это должно было вызвать ошибку. Используйте отчеты об ошибках в будущем.
«запятая» находится в конце строки выбора, и вы получите множество жалоб от ваших клиентов.
Я хочу извиниться за то, что был настолько слеп и разочаровал вас.
Вы пытаетесь продать все свои акции сразу? Если нет, то лучше присоедините cart_product к корзине.