当前位置: 首页 > news >正文

温州人才网站开发中山环保骏域网站建设专家

温州人才网站开发,中山环保骏域网站建设专家,营销类网站建设,西安网站建设外包服务摘要 将PDO封装成PHP类进行调用有很多好处#xff0c;包括#xff1a; 1、封装性和抽象性#xff1a; 通过将PDO封装到一个类中#xff0c;您可以将数据库操作逻辑与应用程序的其他部分分离开来#xff0c;提高了代码的组织性和可维护性。这样#xff0c;您只需在一个地…摘要 将PDO封装成PHP类进行调用有很多好处包括 1、封装性和抽象性 通过将PDO封装到一个类中您可以将数据库操作逻辑与应用程序的其他部分分离开来提高了代码的组织性和可维护性。这样您只需在一个地方维护数据库连接和查询逻辑而不必在整个应用程序中散布数据库代码。 2、重用性 将数据库操作封装成类使得这些操作可以在应用程序的不同部分重复使用而无需重复编写相同的代码。这有助于减少代码冗余提高效率。 3、安全性 通过类的方法来执行数据库操作可以轻松地实施预处理语句从而减少了SQL注入攻击的风险。类还可以提供错误处理机制使您能够更容易地处理数据库错误。 4、可扩展性 使用类封装数据库操作可以轻松地扩展和维护应用程序。如果需要添加新的数据库操作或更改现有的操作只需修改类中的相应方法而不必更改应用程序的其他部分。 5、清晰的接口 类提供了一个清晰的接口使其他开发人员能够更容易地理解和使用数据库操作。这有助于团队协作和代码维护。 将PDO封装成PHP类可以提高代码的可维护性、可重用性和安全性同时降低了代码的耦合度使数据库操作更容易管理和扩展。这是一个良好的软件工程实践特别适用于中大型和复杂的应用程序。 类文件 Database.php 以下是使用Chatgpt生成的操作类但是我做了30%的修改和优化。 ?php/*** TitlePDO数据库操作类* AuthorTANKING* Bloghttps://segmentfault.com/u/tanking* Date2023-09-18*/class Database{private $host;private $username;private $password;private $database;private $pdo;private $error null;public function __construct($host, $username, $password, $database){$this-host $host;$this-username $username;$this-password $password;$this-database $database;$this-connect();}// 获取错误信息public function getError(){return $this-error;}// 连接数据库private function connect(){$dsn mysql:host{$this-host};dbname{$this-database};try {$this-pdo new PDO($dsn, $this-username, $this-password);$this-pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);} catch (PDOException $e) {die(Connection failed: . $e-getMessage());}}// 插入数据public function insert($table, $data){try {$columns implode(, , array_keys($data));$values : . implode(, :, array_keys($data));$sql INSERT INTO $table ($columns) VALUES ($values);$stmt $this-pdo-prepare($sql);$result $stmt-execute($data);if (!$result) {$this-error $stmt-errorInfo();}return $result;} catch (PDOException $e) {// 处理数据库异常$this-error $e-getMessage();return FALSE;}}// 更新数据public function update($table, $data, $where){try {$set ;foreach ($data as $key $value) {$set . $key :$key, ;}$set rtrim($set, , );$sql UPDATE $table SET $set WHERE $where;$stmt $this-pdo-prepare($sql);$result $stmt-execute($data);if (!$result) {$this-error $stmt-errorInfo();}return $result;} catch (PDOException $e) {// 处理数据库异常$this-error $e-getMessage();return FALSE;}}// 删除数据public function delete($table, $where){try {$sql DELETE FROM $table WHERE $where;$stmt $this-pdo-prepare($sql);$result $stmt-execute();if($stmt-rowCount() 0) {// 没有受影响的记录$this-error 没有受影响的记录;return FALSE;}else {return $result;}} catch (PDOException $e) {// 处理数据库异常$this-error $e-getMessage();return FALSE;}}// 查询一条数据public function queryOne($table, $conditions []){$whereClause $this-buildWhereClause($conditions);$sql SELECT * FROM $table $whereClause LIMIT 1;try {$stmt $this-pdo-prepare($sql);$stmt-execute($conditions);return $stmt-fetch(PDO::FETCH_ASSOC);} catch (PDOException $e) {// 处理数据库异常$this-error $e-getMessage();return FALSE;}}// 查询所有数据public function queryAll($table, $conditions []){$whereClause $this-buildWhereClause($conditions);$sql SELECT * FROM $table $whereClause;try {$stmt $this-pdo-prepare($sql);$stmt-execute($conditions);return $stmt-fetchAll(PDO::FETCH_ASSOC);} catch (PDOException $e) {// 处理数据库异常$this-error $e-getMessage();return FALSE;}}// 执行原生SQL语句public function executeSQL($sql, $params []){try {$stmt $this-pdo-prepare($sql);$result $stmt-execute($params);if (!$result) {// 执行失败$this-error $stmt-errorInfo();return FALSE;}return $stmt;} catch (PDOException $e) {// 处理数据库异常$this-error $stmt-errorInfo();return FALSE;}}// 数据绑定private function buildWhereClause($conditions){if (empty($conditions)) {return ;}$where WHERE;foreach ($conditions as $key $value) {$where . $key :$key AND;}$where rtrim($where, AND);return $where;}}实例 配置文件 Db.php ?php/*** Title数据库配置* AuthorTANKING* Bloghttps://segmentfault.com/u/tanking* Date2023-09-18*/$DbConfig array(db_host xxx, // 数据库服务器db_name xxx, // 数据库名db_user xxx, // 数据库账号db_pwd xxx, // 数据库密码);include Database.php; ?以下实例使用一个名为artcles的数据库表进行操作演示。 插入数据 insert.php ?php// 编码header(Content-type:application/json);// 数据库配置include Db.php;// 连接数据库$db new Database($DbConfig[db_host], $DbConfig[db_user], $DbConfig[db_pwd], $DbConfig[db_name]);// 插入数据$data [aid rand(100000,999999), title sdfgsadg,tag ceshi,content 这是内容,author TANKING];$insertArtcle $db-insert(artcles, $data);if($insertArtcle){echo 插入成功;}else{echo 失败 . $db-getError();}?更新数据 update.php ?php// 编码header(Content-type:application/json);// 数据库配置include Db.php;// 连接数据库$db new Database($DbConfig[db_host], $DbConfig[db_user], $DbConfig[db_pwd], $DbConfig[db_name]);// 更新$updateData [tag 测试];$where id 19;$updateArtcle $db-update(artcles, $updateData, $where);if($updateArtcle){echo 更新成功;}else{echo 更新失败 . $db-getError();}?删除数据 delete.php ?php// 编码header(Content-type:application/json);// 数据库配置include Db.php;// 连接数据库$db new Database($DbConfig[db_host], $DbConfig[db_user], $DbConfig[db_pwd], $DbConfig[db_name]);// 删除$where id 11;$deleteArtcle $db-delete(artcles, $where);if($deleteArtcle){echo 删除成功;}else{echo 删除失败 . $db-getError();}?查询一条数据 queryOne.php ?php// 编码header(Content-type:application/json);// 数据库配置include Db.php;// 连接数据库$db new Database($DbConfig[db_host], $DbConfig[db_user], $DbConfig[db_pwd], $DbConfig[db_name]);// 查询一条数据$conditions [id 18];$getArtcle $db-queryOne(artcles, $conditions);if($getArtcle){echo json_encode($getArtcle);}else{echo 查询失败 . $db-getError();}?查询所有数据 queryAll.php ?php// 编码header(Content-type:application/json);// 数据库配置include Db.php;// 连接数据库$db new Database($DbConfig[db_host], $DbConfig[db_user], $DbConfig[db_pwd], $DbConfig[db_name]);// 查询所有数据$conditions [];$getArtcles $db-queryAll(artcles, $conditions);if($getArtcles){echo json_encode($getArtcles);}else{echo 查询失败 . $db-getError();}?执行原生SQL语句 // 插入 $sql INSERT INTO artcles (aid, title, tag, content, author) VALUES (:aid, :title, :tag, :content, :author); $params [:aid rand(100000,999999), :title 这是标题 . uniqid(),:tag tag . rand(0,9),:content 这是内容 . uniqid(),:author TANKING ];// 更新 $sql UPDATE artcles SET title :title WHERE id :id; $params [:id 22,:title 这是标题_已更新, ];// 删除 $sql DELETE FROM artcles WHERE id :id; $params [:id 20 ];// 查询 $sql SELECT * FROM artcles; try {$stmt $db-executeSQL($sql);if ($stmt) {$result $stmt-fetchAll(PDO::FETCH_ASSOC);if (empty($result)) {// 没有匹配的结果echo 没有匹配的结果;} else {echo json_encode($result);}} else {echo 查询失败错误信息 . json_encode($db-getError());} } catch (DatabaseException $e) {// 查询失败echo $e-getMessage(); }作者 TANKING
http://www.hkea.cn/news/14384458/

相关文章:

  • 网站做301重定向怎么做征二级网站建设意见 通知
  • 网站图片如何做水印安徽省卫生计生网站医共体建设
  • 企业网站建设选题的依据及意义自己电脑做电影网站吗
  • 开发购物网站描述上海 网站 备案
  • h5技术建设网站app费用
  • 2017年做那个网站致富南京app软件开发
  • 推荐10个优秀的国外ui设计网站怎样自己做免费网站
  • 合肥市门窗工程在哪个网站接活做哈尔滨网页设计与制作
  • 怎么做国外的网站 卖东西网页定制多少钱
  • 福建建设局网站wordpress彩色标签固定宽度代码
  • 苏州优秀网站设计软文有哪几种类型
  • 网站出现风险如何处理方法做刷机网站赚钱吗
  • 网站建设维护更新wordpress解析完403
  • 成都网站建设企业电子商务网站建设与管理期末考试
  • 校园网站建设招标公告api网站模板
  • 企业做网站需要做哪些工作个人网站的内容
  • 商务网站模板免费下载广州网站建设网站优化网站推广
  • 天津教育学会网站建设wordpress下载站批量
  • 无极在线最新招聘兼职凡科建站seo
  • 怎么自己做网站推广公司管理培训课程
  • 网站运营管理报告总结上海网站建设服务框架
  • anydrag建站专家网站建设系统苏州百度推广排名优化
  • 重庆建设厅的网站网站公司如何推广网站
  • 苏州微信网站建设wamp做的网站标签图标
  • 佛山新网站建设策划sem竞价培训班
  • 网站设计软件下载3d绘图培训学校
  • 亚马逊站外推广网站怎么做广州网络推广培训机构
  • 网上购物商城建设想学网站建设优化去哪
  • 网站搜索引擎友好性网站主办者是什么意思
  • 网站建设公司方唯旅游海外网站建设