2016-10-12 4 views
1

Я пытаюсь связать $userId значение, хранящееся с $_SESSION внутри инструкции insert select, но кажется, что это неправильно.Sql Insert Into Select statement PDO

class Cart { 

    public function addToCart($userId, $prodId) { 

     $sql = "INSERT INTO `cart` (prod_id, user_id, prod_title, prod_img,quantity, price) 
       SELECT product_id, //:user_id//, product_title, product_img, 1, product_price 
       FROM `products` 
       WHERE product_id = :product_id 
     "; 

     $q = $this->_pdo->prepare($sql); 
     $q->execute([ 'user_id' => $userId , 'product_id' => $prodId]); 
    } 

} 

ответ

0

При использовании именованных параметров вы должны использовать это имя в массиве вы передаете функции исполнения (а также -. Не знаю, почему у вас есть //...// (в //:user_id//)

проверьте это:

$sql = "INSERT INTO `cart` (prod_id, user_id, prod_title, prod_img,quantity, price) 
      SELECT product_id, :user_id, product_title, product_img, 1, product_price 
      FROM `products` 
      WHERE product_id = :product_id 
    "; 

$q = $this->_pdo->prepare($sql); 
$q->execute([ ':user_id' => $userId , ':product_id' => $prodId]); 
+0

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

+0

вы проверили изменения в 'execute' в моем ответе – Dekel

+0

все равно Thnx за помощью –