Aktualnie aktualizuję aplikację, przełączając się na PDO. Mam następujący kod:Konwersja PHP przy użyciu pętli do korzystania z PDO
$stmt = $db->prepare("select * from `product` where productid in (:productidLst)");
$stmt->bindParam(":productidLst",$productidLst, PDO::PARAM_INT);
$stmt->execute();
var $ productidLst jest 1,2 po powyższym kodzie Chciałbym skorzystać z PDO odpowiednik tego:
while($rs=mysql_fetch_assoc($res)){
$rs['qty']=$_SESSION['basket'][$rs['productid']];
$rs['total'] += $rs['qty']*$rs['price'];
$total += $rs['total'];
$a[] = $rs;
}
próbowałem liczne kombinacje, ale nie odniosło sukces, więc każda pomoc w tym zakresie byłaby doceniona (w drugim bloku kodu $ res był sql). Po drugie ustawiłem parametr $ productidLst na INT, czy jest to poprawne czy powinno być ciągiem?
-------------------- AKTUALIZACJA 1 ------------------------ ----------------------------
próbowałem następujący kod:
$stmt = $db->prepare("select * from `product` where productid in (:productidLst)");
foreach ($stmt->execute(array(':productidLst' => $productidLst)) as $row)
{
$total += $row['total'];
}
która zwraca: Nieprawidłowy argument dostarczony dla foreach() błąd
W tym momencie nie można powiązać [wartości listy z parametrem zapytania] (http://stackoverflow.com/questions/920353/php-pdo-can-i-bind-an-array-to- an-in-condition). – outis
+1 za przejście do PDO :) –
'PDOStatement :: execute()' zwraca wartość logiczną, która nie jest odpowiednia do użycia w 'foreach' – Phil