Как я могу подготовить запрос INSERT INTO SELECT на php?

Я пытаюсь скопировать товары из корзины (из 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 к корзине.

Gerard H. Pille 02.06.2018 18:00

Нет, я просто пытаюсь скопировать продукты из корзины, принадлежащие конкретному покупателю, и создать с ними заказ, а затем очистить корзину от всех продуктов.

user9115388 02.06.2018 18:07

Вы копируете все записи из cart_product, а не только из корзины покупателя.

Gerard H. Pille 02.06.2018 18:09

Ну cart_product - это корзина покупателя. У каждого покупателя есть одна корзина, которая обновляется после каждой проверки заказа. Я указал, что копирую только те, которые принадлежат конкретному владельцу корзины, используя предложение WHERE. Я ошибся ?

user9115388 02.06.2018 18:13

Вы не можете связать столбцы. Вы ведь это знаете?

Rotimi 02.06.2018 18:17

Я подумал, что, поскольку мы можем выполнять математические операции с оператором SELECT, например (SELECT 7 + 5), возможно, мы могли бы сделать то же самое с подготовленными запросами.

user9115388 02.06.2018 18:19

Итак, как я могу скопировать часть данных из таблицы и подготовить вторую половину?

user9115388 02.06.2018 18:20

@ GerardH.Pille Тебе стоит кое-чему научиться. Посмотрите stackoverflow.com/questions/182287/…

Rotimi 03.06.2018 09:44

@AkintundeOlawale, и я надеялся кое-что узнать, но это было только то, что вы, кажется, игнорировали разницу между столбцом и именем столбца. Снова: попробуйте "select: bindvar from ...".

Gerard H. Pille 03.06.2018 14:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
9
63
1

Ответы 1

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

Это должно было вызвать ошибку. Используйте отчеты об ошибках в будущем.

user3783243 02.06.2018 18:38

«запятая» находится в конце строки выбора, и вы получите множество жалоб от ваших клиентов.

Gerard H. Pille 02.06.2018 19:02

Я хочу извиниться за то, что был настолько слеп и разочаровал вас.

Gerard H. Pille 03.06.2018 14:23

Другие вопросы по теме