【发布时间】:2013-11-28 00:17:22
【问题描述】:
我正在开发基于会话的购物车。我想将会话中的购物车项目保存到我的数据库中。请我需要关于如何去做的帮助。我已经阅读过,但没有找到任何解决我问题的线索。下面是两张图片,一张是示例 DB 表,另一张是假设的 Session 变量。
使用 PDO,我需要有关如何将这些值插入我的数据库的帮助。请注意,返回数组的数量可能会超过样本图像上的数组计数。任何提供的解决方案都应具有可扩展性,以尽可能多地保存购物车商品。
【问题讨论】:
我正在开发基于会话的购物车。我想将会话中的购物车项目保存到我的数据库中。请我需要关于如何去做的帮助。我已经阅读过,但没有找到任何解决我问题的线索。下面是两张图片,一张是示例 DB 表,另一张是假设的 Session 变量。
使用 PDO,我需要有关如何将这些值插入我的数据库的帮助。请注意,返回数组的数量可能会超过样本图像上的数组计数。任何提供的解决方案都应具有可扩展性,以尽可能多地保存购物车商品。
【问题讨论】:
与通过 PDO 进行的其他 SQL 查询相比,为此使用 PDO 并没有什么特别之处。但是,您的会话数组中确实缺少 prod_id 值,因此您可能还想添加它。
$statement = $pdo->prepare("
INSERT INTO
cart
(prod_id, code, name, qty, price, colour, size, quantity)
VALUES
(:prod_id, :code, :name, :qty, :price, :colour, :size, :quantity)
");
foreach ($_SESSION['cart'] as $item)
{
$statement->execute(array(
':prod_id' => $item['prod_id'],
':code' => $item['code'],
... etc ...
));
}
如果需要(如果它是由 SQL 服务器生成的),您还可以通过调用 $pdo->lastInsertId(); 来检索 cart_id; .. 我猜它已经指的是购物车,所以你也需要有它。
【讨论】:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined'。 :bind 数字是正确的并且也返回它们不同的值。什么可能导致此错误?