摘要:发现忘记的差不多了,也不会写了想着写点什么东西简单的写个购物车类请先登录添加商品到购物车修改购买数量清空购物车从购物车中删除商品处理数据简单使用添加到购物车删除指定的商品清空
发现pdo忘记的差不多了,sql也不会写了 想着写点什么东西 简单的写个购物车类
pdo = new PDO("mysql:host=$host;dbname=$db", "$user", "$pwd", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); $this->pdo->query("set names utf8"); } catch (PDOException $e) { echo $e->getMessage(); } } //添加商品到购物车 public function add_cart($productid, $num) { $sql = "select price from shop_product where id=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($productid)); $data = $stmt->fetch(PDO::FETCH_ASSOC); $price = $data["price"]; $createtime = time(); $sql = "select * from shop_cart where productid=? and userid=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($productid, $_SESSION["user_id"])); $data = $stmt->fetch(PDO::FETCH_ASSOC); if ($data) { $sql = "update shop_cart set num=num+? where userid=? and productid=?"; $params = array($num, $_SESSION["user_id"], $productid); } else { $sql = "insert into shop_cart(productid,num,userid,price,createtime) values(?,?,?,?,?)"; $params = array($productid, $num, $_SESSION["user_id"], $price, $createtime); } $stmt = $this->pdo->prepare($sql); $stmt->execute($params); $rows = $stmt->rowCount(); return $rows ? show(1, "ok", $rows) : show(0, "fail"); } //修改购买数量 public function change_num($productid, $num) { $sql = "update shop_cart set num=? where userid=? and productid=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($num, $_SESSION["user_id"], $productid)); $rows = $stmt->rowCount(); return $rows ? show(1, "ok", $rows) : show(0, "fail"); } //清空购物车 public function clear_cart() { $sql = "delete from shop_cart where userid=?"; $stmt = $this->pdo->prepare($sql); $this->pdo->execute(array($this->user_id)); $rows = $stmt->rowCount(); return $rows ? show(1, "ok", $rows) : show(0, "fail"); } //从购物车中删除商品 public function remove_cart($productid) { $sql = "delete from shop_cart where productid=? and userid=?"; $stmt = $this->pdo->prepare($sql); $stmt->execute(array($productid, $_SESSION["user_id"])); $rows = $stmt->rowCount(); return $rows ? show(1, "ok", $rows) : show(0, "fail"); } } //处理数据 function show($status, $message, $data = array()) { $result = array( "status" => $status, "message" => $message, "data" => $data ); exit(json_encode($result)); } //简单使用 $user = [ "host" => "", "user" => "root", "pwd" => "root", "db" => "shop", ]; $productid = intval($_POST["productid"]); $num = intval($_POST["num"]); $cart = new Cart($user); //添加到购物车 $cart->add_cart($productid, $num); //删除指定的商品 $cart->remove_cart($productid); //清空 $cart->clear_cart(); ?>
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/23148.html
摘要:注在常驻内存单例模式下,这种多次用一个类进行查询的情形很常见。断线重连对于典型环境而言,一次的查询已经随着的请求而结束,的垃圾回收功能会回收一次请求周期内的数据。但在常驻内存的环境下,尤其是单例模式下,数据库驱动类可能一直在内存中不被销毁。 构造、执行第一条语句 上一篇完成了代码结构的搭建和 PDO 的基础封装,这一篇我们来讲如何构造一个最基本的 SQL 语句,并执行得到结果。 que...
摘要:同样的,添加属性,修改函数构造语句的方法基类中添加方法检测有没有设置子句构建语句参数绑定返回影响的行数更新数据示例相比,语句更为简单,只需子句即可。 查询语句 (DQL) 的构造功能开发完毕,我们再给查询构造器增加一些对 DML (Data Manipulation Language) 语句的支持,如简单的 insert、update、delete 操作。 insert 我们先回顾下 ...
说明:本篇主要学习数据库连接阶段和编译SQL语句部分相关源码。实际上,上篇已经聊到Query Builder通过连接工厂类ConnectionFactory构造出了MySqlConnection实例(假设驱动driver是mysql),在该MySqlConnection中主要有三件利器:IlluminateDatabaseMysqlConnector;IlluminateDatabaseQuery...
阅读 813·2021-11-18 10:07
阅读 2306·2021-10-14 09:42
阅读 5220·2021-09-22 15:45
阅读 567·2021-09-03 10:29
阅读 3444·2021-08-31 14:28
阅读 1854·2019-08-30 15:56
阅读 3023·2019-08-30 15:54
阅读 975·2019-08-29 11:32