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

企业做网站的凭证怎么做优化设计答案大全英语

企业做网站的凭证怎么做,优化设计答案大全英语,站长工具域名查询ip,苏州h5网站建设摘要 将PDO封装成PHP类进行调用有很多好处,包括: 1、封装性和抽象性: 通过将PDO封装到一个类中,您可以将数据库操作逻辑与应用程序的其他部分分离开来,提高了代码的组织性和可维护性。这样,您只需在一个地…

摘要

将PDO封装成PHP类进行调用有很多好处,包括:

1、封装性和抽象性: 通过将PDO封装到一个类中,您可以将数据库操作逻辑与应用程序的其他部分分离开来,提高了代码的组织性和可维护性。这样,您只需在一个地方维护数据库连接和查询逻辑,而不必在整个应用程序中散布数据库代码。

2、重用性: 将数据库操作封装成类使得这些操作可以在应用程序的不同部分重复使用,而无需重复编写相同的代码。这有助于减少代码冗余,提高效率。

3、安全性: 通过类的方法来执行数据库操作,可以轻松地实施预处理语句,从而减少了SQL注入攻击的风险。类还可以提供错误处理机制,使您能够更容易地处理数据库错误。

4、可扩展性: 使用类封装数据库操作,可以轻松地扩展和维护应用程序。如果需要添加新的数据库操作或更改现有的操作,只需修改类中的相应方法而不必更改应用程序的其他部分。

5、清晰的接口: 类提供了一个清晰的接口,使其他开发人员能够更容易地理解和使用数据库操作。这有助于团队协作和代码维护。

将PDO封装成PHP类可以提高代码的可维护性、可重用性和安全性,同时降低了代码的耦合度,使数据库操作更容易管理和扩展。这是一个良好的软件工程实践,特别适用于中大型和复杂的应用程序。

类文件

Database.php

以下是使用Chatgpt生成的操作类,但是我做了30%的修改和优化。

<?php/*** Title:PDO数据库操作类* Author:TANKING* Blog:https://segmentfault.com/u/tanking* Date:2023-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:数据库配置* Author:TANKING* Blog:https://segmentfault.com/u/tanking* Date:2023-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.yidumall.com/news/38024.html

相关文章:

  • wordpress 2018主题手机360优化大师官网
  • 四川网站建设电话域名怎么注册
  • 广告投放就选亿企联盟东莞搜索网络优化
  • vs2010网站开发示例网络推广是什么专业
  • flash可以做网站吗优化网站页面
  • 济南建站公司哪有免费做网站网站
  • 做区块链网站的公司灵宝seo公司
  • 代理网站哪个好快速排名程序
  • 二级域名做网站张文宏说上海可能是疫情爆发
  • ps怎么做网站页面seo搜索引擎优化介绍
  • 做网站 深圳百度产品优化排名软件
  • 企业网站建设推广费用微商引流人脉推广软件
  • 网址导航网站建站百度pc端首页
  • 东莞网站建设平台河南网络推广那家好
  • 深圳网站开百度排名点击
  • 成绩分析智能网站怎么做企业文化案例
  • 深圳市专业制作网站公司软文广告示范
  • 台州网站建设 网站制作 网站设计企业营销管理
  • 模板网站建设教程沈阳seo排名外包
  • 具有品牌的网站建设靠谱的广告联盟
  • 网站怎么做查询系统全网搜索指数查询
  • 宁乡县建设局网站搜索引擎排行榜
  • 学做实体店网站360关键词排名推广
  • 合肥制作网站价格网络优化工程师有前途吗
  • 美国旅游网站排名百度云登录
  • 网站优化 西安百度竞价推广投放
  • 网站优化的核心不包括营销网站建设软件下载
  • 开发公司委合同引擎优化seo怎么做
  • 类似织梦的建站cms网站seo优化发布高质量外链
  • 电影网站标题怎么做流量多怎样给自己的网站做优化