批改状态:合格
老师批语:数据库, 其实没你想像的困难吧
<pre>├─db 数据库目录│ ├─db_curd 增删改查目录│ │ ├─db_insert.php 插入类│ │ ├─db_delete.php 删除类│ │ ├─db_update.php 更新类│ │ └─db_select.php 查询类│ ├─db_connect.php 连接类│ ├─db_config.php 数据库配置文件</pre>
//数据库配置namespace db_config;// 数据库连接配置参数return [//1. 数据库类型'type'=>$type ?? 'mysql',//2. 数据库默认主机'host'=>$host ?? 'localhost',//3. 默认数据库'dbname'=>$dbname ?? 'shopping',//4. 默认字符编码集'charset'=>$charset ?? 'utf8',//5. 默认端口号'port'=>$port ?? '3306',//6. 默认用户名'username'=>$username ?? 'root',//7. 默认用户密码'password'=>$password ?? 'root',];
//连接数据库namespace db_connect;//导入PDO类和导入异常类use PDO;use Exception;//1. 加载配置参数$cfg = require 'db_config.php';$type = $cfg['type'];$host = $cfg['host'];$dbname = $cfg['dbname'];$username = $cfg['username'];$password = $cfg['password'];//2. 创建数据源$dsn = sprintf('%s:host=%s;dbname=%s', $type, $host, $dbname);//3. PDO方式连接数据库try {//初始化一个PDO对象$pdo = new PDO($dsn, $username, $password);} catch (Exception $e) {die($e->getMessage());}
//新增记录namespace db\db_curd\db_insert;//导入PDO类use PDO;//1. 连接数据库require '../db_connect.php';//2. 操作数据库//2.1 新增记录//准备一条带有参数标记的SQL语句$sql = "INSERT `productinfo` SET `p_name`=?, `category_id`=?, `sku_id`=?, `p_stock`=?, `orig_price`=?, `mark_price`=?, `p_desc`=?, `p_img`=?, `p_time`=?";//定义预处理语句$stmt = $pdo->prepare($sql);//定义数据$data = ['黑莓手机SK5', 'DZ02', 12315156, 99, 9999.99, 6999.99, '16G运行内存,128G存储内存', 'FAJKFNALLAILA1238454', time()];//执行预处理语句$stmt->execute($data);//2.2 判断是否执行成功if ($stmt->rowCount() === 1) {echo '新增成功,新增记录的主键是:' . $pdo->lastInsertId();} else {echo '新增失败';print_r($stmt->errorInfo());};//3. 关闭连接unset($pdo);


//删除记录namespace db\db_curd\db_delete;//导入PDO类use PDO;//1. 连接数据库require '../db_connect.php';//2. 操作数据库//2.1 删除记录//准备一条带有参数标记的SQL语句$sql = "DELETE FROM `productinfo` WHERE `sku_id`=:sku_id";//定义预处理语句$stmt = $pdo->prepare($sql);//定义数据$data = [':sku_id'=>12315153];//执行预处理语句$stmt->execute($data);//2.2 判断是否执行成功if ($stmt->rowCount() >= 1) {echo '删除成功,删除记录数:' . $stmt->rowCount();} else {echo '删除失败';print_r($stmt->errorInfo());};//3. 关闭连接unset($pdo);


//更新记录namespace db\db_curd\db_update;//导入PDO类use PDO;//1. 连接数据库require '../db_connect.php';//2. 操作数据库//2.1 更新记录//准备一条带有参数标记的SQL语句$sql = "UPDATE `productinfo` SET `p_name`=? WHERE `sku_id`=?";//定义预处理语句$stmt = $pdo->prepare($sql);//定义数据$data = ['黑莓手机SK6', 12315154];//执行预处理语句$stmt->execute($data);//2.2 判断是否执行成功if ($stmt->rowCount() >= 1) {echo '更新成功,更新记录数:' . $stmt->rowCount();} else {echo '删除失败';print_r($stmt->errorInfo());};//3. 关闭连接unset($pdo);


//单条查询记录namespace db\db_curd\db_select;//导入PDO类use PDO;//1. 连接数据库require '../db_connect.php';//2. 操作数据库//2.1 查询记录//准备一条带有参数标记的SQL语句$sql = "SELECT `id`, `p_name` FROM `productinfo` WHERE `p_stock`<? and `mark_price`<?";//定义预处理语句$stmt = $pdo->prepare($sql);//定义数据$data = [10, 9999.99];//执行预处理语句$stmt->execute($data);//2.2 判断是单条查询还是多条查询及返回查询结果switch ($stmt->rowCount()) {case ($stmt->rowCount() === 1):$staff = $stmt->fetch(PDO::FETCH_ASSOC);printf('<pre>%s</pre>', print_r($staff, true));break;case ($stmt->rowCount() > 1):$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);printf('<pre>%s</pre>', print_r($staffs, true));break;default:echo '查询失败';print_r($stmt->errorInfo());}//3. 关闭连接unset($pdo);


//单条查询记录namespace db\db_curd\db_select;//导入PDO类use PDO;//1. 连接数据库require '../db_connect.php';//2. 操作数据库//2.1 查询记录//准备一条带有参数标记的SQL语句$sql = "SELECT `id`, `p_name` FROM `productinfo` WHERE `p_stock`<? and `mark_price`<?";//定义预处理语句$stmt = $pdo->prepare($sql);//定义数据$data = [10, 9999.99];//执行预处理语句$stmt->execute($data);//2.2 判断是单条查询还是多条查询及返回查询结果switch ($stmt->rowCount()) {case ($stmt->rowCount() === 1):$staff = $stmt->fetch(PDO::FETCH_ASSOC);printf('<pre>%s</pre>', print_r($staff, true));break;case ($stmt->rowCount() > 1):$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);printf('<pre>%s</pre>', print_r($staffs, true));break;default:echo '查询失败';print_r($stmt->errorInfo());}//3. 关闭连接unset($pdo);


Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号