php 商城实现
开发环境搭建
安装 PHP 环境(如 XAMPP、Laragon 或 Docker),确保支持 MySQL 数据库。推荐使用 PHP 7.4+ 和 MySQL 5.7+。
数据库设计
创建核心表:
users(用户信息)products(商品信息)categories(商品分类)orders(订单)order_items(订单明细)carts(购物车)
示例 SQL 片段:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
category_id INT,
stock INT DEFAULT 0,
FOREIGN KEY (category_id) REFERENCES categories(id)
);
核心功能实现
用户认证
使用 PHP 原生会话或框架(如 Laravel 的 Auth):
session_start();
if ($_POST['login']) {
// 验证用户名密码
$_SESSION['user_id'] = $user['id'];
}
商品展示
从数据库查询商品并分页显示:
$perPage = 10;
$page = $_GET['page'] ?? 1;
$offset = ($page - 1) * $perPage;
$products = $pdo->query("SELECT * FROM products LIMIT $offset, $perPage");
购物车逻辑
基于 Session 实现临时购物车:
if (!isset($_SESSION['cart'])) {
$_SESSION['cart'] = [];
}
$_SESSION['cart'][$productId] = $quantity;
订单处理
事务处理订单和库存更新:
$pdo->beginTransaction();
try {
$pdo->query("INSERT INTO orders (...) VALUES (...)");
$pdo->query("UPDATE products SET stock = stock - 1 WHERE id = $productId");
$pdo->commit();
} catch (Exception $e) {
$pdo->rollBack();
}
支付集成
接入支付宝或微信支付 API:
$alipay = new AlipayClient($config);
$response = $alipay->request('trade.create', [
'subject' => '订单标题',
'amount' => $order['total']
]);
安全措施
- 使用预处理语句防 SQL 注入:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); - 密码哈希存储:
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);
性能优化
- 启用 OPcache 加速 PHP
- 使用 Redis 缓存热门商品数据
- 静态资源 CDN 分发
部署上线
- 配置 Nginx/Apache 虚拟主机
- 设置 HTTPS(Let's Encrypt 证书)
- 定时备份数据库
扩展建议
- 实现 Elasticsearch 商品搜索
- 添加 Prometheus 监控
- 使用队列处理邮件通知







