Tôi hiện đang cập nhật ứng dụng của mình bằng cách chuyển sang PDO. Tôi có đoạn mã sau:Chuyển đổi PHP khi vòng lặp để sử dụng PDO
$stmt = $db->prepare("select * from `product` where productid in (:productidLst)");
$stmt->bindParam(":productidLst",$productidLst, PDO::PARAM_INT);
$stmt->execute();
Các var $ productidLst là 1,2 sau khi mã trên, chúng tôi muốn sử dụng tương đương với PDO điều này:
while($rs=mysql_fetch_assoc($res)){
$rs['qty']=$_SESSION['basket'][$rs['productid']];
$rs['total'] += $rs['qty']*$rs['price'];
$total += $rs['total'];
$a[] = $rs;
}
Tôi đã cố gắng rất nhiều nhưng không kết hợp đã thành công nên bất kỳ trợ giúp nào với điều này sẽ được đánh giá cao (trong khối mã thứ 2 là $ res là sql). Thứ hai tôi đã đặt tham số $ productidLst thành INT là đúng hay nó nên là một chuỗi?
-------------------- CẬP NHẬT 1 ------------------------ ----------------------------
tôi đã thử đoạn mã sau:
$stmt = $db->prepare("select * from `product` where productid in (:productidLst)");
foreach ($stmt->execute(array(':productidLst' => $productidLst)) as $row)
{
$total += $row['total'];
}
nào trả về: không hợp lệ đối số được cung cấp cho lỗi foreach()
Tại thời điểm này, bạn không thể ràng buộc [giá trị danh sách thành thông số truy vấn] (http://stackoverflow.com/questions/920353/php-pdo-can-i-bind-an-array-to- an-in-condition). – outis
+1 để chuyển sang PDO :) –
'PDOStatement :: execute()' trả về một boolean không phù hợp để sử dụng trong 'foreach' – Phil