Heim > Backend-Entwicklung > PHP-Tutorial > Vollständiges Beispiel einer von PHP+PDO implementierten Warenkorbklasse

Vollständiges Beispiel einer von PHP+PDO implementierten Warenkorbklasse

coldplay.xixi
Freigeben: 2023-04-09 10:38:02
nach vorne
2969 Leute haben es durchsucht

Vollständiges Beispiel einer von PHP+PDO implementierten Warenkorbklasse

Das Beispiel in diesem Artikel beschreibt die von PHP+PDO implementierte Warenkorbklasse. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

<?php
session_start();
class Cart
{
  public $pdo = null;
  public function __construct($config)
  {
    $host = $config[&#39;host&#39;];
    $user = $config[&#39;user&#39;];
    $db = $config[&#39;db&#39;];
    $pwd = $config[&#39;pwd&#39;];
    if (empty($_SESSION[&#39;user_id&#39;])) {
      return show(0, &#39;请先登录&#39;);
    }
    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[&#39;price&#39;];
    $createtime = time();
    $sql = "select * from shop_cart where productid=? and userid=?";
    $stmt = $this->pdo->prepare($sql);
    $stmt->execute(array($productid, $_SESSION[&#39;user_id&#39;]));
    $data = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($data) {
      $sql = "update shop_cart set num=num+? where userid=? and productid=?";
      $params = array($num, $_SESSION[&#39;user_id&#39;], $productid);
    } else {
      $sql = "insert into shop_cart(productid,num,userid,price,createtime) values(?,?,?,?,?)";
      $params = array($productid, $num, $_SESSION[&#39;user_id&#39;], $price, $createtime);
    }
    $stmt = $this->pdo->prepare($sql);
    $stmt->execute($params);
    $rows = $stmt->rowCount();
    return $rows ?
      show(1, &#39;ok&#39;, $rows) :
      show(0, &#39;fail&#39;);
  }
  //修改购买数量
  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[&#39;user_id&#39;], $productid));
    $rows = $stmt->rowCount();
    return $rows ?
      show(1, &#39;ok&#39;, $rows) :
      show(0, &#39;fail&#39;);
  }
  //清空购物车
  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, &#39;ok&#39;, $rows) :
      show(0, &#39;fail&#39;);
  }
  //从购物车中删除商品
  public function remove_cart($productid)
  {
    $sql = "delete from shop_cart where productid=? and userid=?";
    $stmt = $this->pdo->prepare($sql);
    $stmt->execute(array($productid, $_SESSION[&#39;user_id&#39;]));
    $rows = $stmt->rowCount();
    return $rows ?
      show(1, &#39;ok&#39;, $rows) :
      show(0, &#39;fail&#39;);
  }
}
//处理数据
function show($status, $message, $data = array())
{
  $result = array(
    &#39;status&#39; => $status,
    &#39;message&#39; => $message,
    &#39;data&#39; => $data
  );
  exit(json_encode($result));
}
//简单使用
$user = [
  &#39;host&#39; => &#39;&#39;,
  &#39;user&#39; => &#39;root&#39;,
  &#39;pwd&#39; => &#39;root&#39;,
  &#39;db&#39; => &#39;shop&#39;,
];
$productid = intval($_POST[&#39;productid&#39;]);
$num = intval($_POST[&#39;num&#39;]);
$cart = new Cart($user);
//添加到购物车
$cart->add_cart($productid, $num);
//删除指定的商品
$cart->remove_cart($productid);
//清空
$cart->clear_cart();
?>
Nach dem Login kopieren

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonVollständiges Beispiel einer von PHP+PDO implementierten Warenkorbklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage