Как вставить массив идентификаторов в базу данных MySQL? - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь вставить массив идентификаторов в таблицу базы данных, но на данный момент он вставляет только 1 строку, когда он должен делать несколько строк. Мой массив идентификаторов содержит только (filmid) Кто-нибудь знает, в чем проблема?

$pm = "2";
$id = "2";             

if($stmt1->execute())
{
    $films=array();
    foreach($_SESSION['products'] as $key=>$product)
    {
        array_push($films, $product['filmid']);
        $f_id  = implode(",", $films);
        $stmt2 = $this->conn->prepare("INSERT INTO `filmPurchase` (`fpid`, `payid`, `filmid`, `shopid`, `custid`, `price`) VALUES (NULL, :id, :f_id, :pm, :pm, '8')");
        $stmt2->bindParam('pm',$pm);
        $stmt2->bindParam('id',$id);
        $stmt2->bindParam('f_id',$f_id);
        $stmt2->execute();
    }

}

Я пытался перебрать массив с помощью:

foreach($_SESSION['products'] as $key=>$product)
{
    var_dump($key);
    var_dump($product);
}

Вот что вывел:

int(29) array(4) { ["qty"]=> int(1) ["filmtitle"]=> string(45) "The Lord of 
the Rings: The Return of the King" ["filmid"]=> string(2) "29" ["price"]=> 
float(6.99) } 

1 Ответ

0 голосов
/ 07 мая 2018

Если ваш заполнитель :id и :pm (как в prepare()), тогда вы должны использовать :id в bindParam()

См. Документацию php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...