php+pdo實現的購物車類完整示例
阿新 • • 發佈:2020-01-12
本文例項講述了php+pdo實現的購物車類。分享給大家供大家參考,具體如下:
<?php session_start(); class Cart { public $pdo = null; public function __construct($config) { $host = $config['host']; $user = $config['user']; $db = $config['db']; $pwd = $config['pwd']; if (empty($_SESSION['user_id'])) { return show(0,'請先登入'); } try { $this->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,$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,$productid)); $rows = $stmt->rowCount(); return $rows ? show(1,'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,'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,'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(); ?>
更多關於PHP相關內容感興趣的讀者可檢視本站專題:《PHP+MySQL購物車開發專題》、《php面向物件程式設計入門教程》、《PHP數學運算技巧總結》、《PHP陣列(Array)操作技巧大全》、《php字串(string)用法總結》、《PHP資料結構與演算法教程》、《php程式設計演算法總結》、《php正則表示式用法總結》、及《php常見資料庫操作技巧彙總》
希望本文所述對大家PHP程式設計有所幫助。