2016-10-12 3 views
1

Ich versuche, $userId Wert von $_SESSION innerhalb einer insert select Anweisung gebunden zu binden, aber es scheint so falsch ist.Sql Einfügen in Select-Anweisung 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]); 
    } 

} 

Antwort

0

Wenn Sie benannte Parameter verwenden, sollten Sie diesen Namen im Array verwenden Sie die Funktion ausführen passieren (und auch -. Nicht sicher, warum haben Sie die //...// (im //:user_id//)

diese

Check:

$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

ich versuche einfach, es in meiner Beschreibung über den Wert konzentrieren musste binded werden –

+0

haben Sie die Änderung in der 'execute' in meiner Antwort überprüfen – Dekel

+0

sowieso tHNX um Hilfe –