2015-11-08 8 views
0

Может ли кто-нибудь помочь мне с запросом mysql. Я пытаюсь вставить несколько строк, используя инструкцию выбора вставки.Невозможно вставить оператор Select в php mysql подготовленный оператор

if ($insert_stmt = $mysqli->prepare("INSERT INTO order_processing_info (order_id, cart_item_id, item_id, price, quantity) VALUES (?, (SELECT s.cart_item_id, i.item_id, i.price, s.quantity FROM inventory_info AS i, cart_info AS s WHERE i.item_id=s.item_id AND s.user_id = ?))")) { 
        $insert_stmt->bind_param('ss', $order_id, $user_id); 

Я думаю, проблема в том, что я хочу, чтобы тот же order_id для всех вставлял сюда, хотя я не уверен.

Раньше я пытался безуспешно запустить его в блоке блока select.

if ($select_stmt = $mysqli->prepare("SELECT i.item_id, i.price, s.quantity, s.cart_item_id FROM inventory_info AS i, shopping_cart_info AS s WHERE i.item_id=s.item_id AND s.user_id = ?")) { 
     $select_stmt->bind_param("s", $user_id); 
     $select_stmt->execute(); 
     $select_stmt->bind_result($item_id, $price, $quantity, $cart_item_id); 

     while ($select_stmt->fetch()) { 

      if ($insert_stmt = $mysqli->prepare("INSERT INTO order_processing_info (order_id, cart_item_id, item_id, price, quantity) VALUES (?, ?, ?, ?, ?)")) { 
       $insert_stmt->bind_param('sssss', $order_id, $cart_item_id, $item_id, $price, $quantity); 
       // Execute the prepared query. 
       if (!$insert_stmt->execute()) { 
        header('Location: ../error.php?err=INSERT failure: INSERT'); 
        exit(); 
       } 
      } 
     } 
     $select_stmt->close(); 
    } 

Я смотрел его много на StackOverflow, но я предполагаю, что я не то, что владеют запросов к базе данных, так что я был бы признателен, если кто-то может помочь мне с этим.

ответ

0

Используйте запрос «INSERT INTO SELECT» (http://www.w3schools.com/sql/sql_insert_into_select.asp), необходимо связать только один параметр, затем идентификатор пользователя. Он также сохранит накладные расходы на запрос в цикле

+0

Спасибо, что я смог его обработать, поставив инструкцию insert в цикле результата выборки предложений select. Спасибо за помощь! –

 Смежные вопросы

  • Нет связанных вопросов^_^