排行榜 统计
  • 建站日期:2017-05-23
  • 文章总数:1290 篇
  • 评论总数:6997 条
  • 分类总数:103 个
  • 最后更新:3月1日
原创PHP编程

PHP文件测试代码

本文阅读 2 分钟
首页 PHP编程 正文

数据库操作类的优点

优点可以说是非常多了,常见的优点就是便于维护、复用、高效、安全、易扩展。例如PDO支持的数据库类型是非常多的,与mysqli不同的就是,PDO还支持其他数据库,一套写法多种数据库的匹配,而mysqli仅仅是支持mysql。

代码

Db.php

<?php
/**
 * 数据库的基本操作
 */
class Db
{
// 数据库的默认连接参数
private $dbConfig=[
    'db'=>'mysql', // 数据库类型
    'host'=>'localhost', // 主机名称
    'port'=>'3306', // 默认端口
    'user'=>'root', // 用户名
    'pass'=>'root', // 密码
    'charset'=>'utf8', // 默认字符集
    'dbname'=>'edu', // 默认数据库
];
// 新增主键id
public $insertId = null;
// 受影响的记录
public $num = 0;
// 单例模式,本类的实例
private static $instance = null;
// 数据库的连接
private $conn = null;
/**
 * Db构造方法
 * 私有化以防止外部实例化
 */
private function __construct($params=[])
{
    // 初始化连接参数
    $this->dbConfig = array_merge($this->dbConfig,$params);
    // 连接数据库
    $this->connect();
}
/**
 * 禁止外部克隆该实例
 */
private function __clone()
{
    // TODO:Implement __clone() method.
}
/**
 * 获取当前类的单一实例
 */
public static function getInstance($params=[])
{
    if (!self::$instance instanceof self) {
        self::$instance = new self($params);
    }
    return self::$instance;
}
private function connect()
{
    try{
        // 配置数据源DSN
        $dsn = "{$this->dbConfig['db']}:host={$this->dbConfig['host']};port={$this->dbConfig['port']};dbname={$this->dbConfig['dbname']};charset={$this->dbConfig['charset']}";
        // 创建PDO对象
        $this->conn = new PDO($dsn,$this->dbConfig['user'],$this->dbConfig['pass']);
        // 设置客户端字符集
        $this->conn->query("SET NAMES {$this->dbConfig['charset']}");
    }catch (PDOException $e){
        die('数据库连接失败'.$e->getMessage());
    }
}
/** 
 * 完成数据表的操作:CURD
 */
public function exec($sql)
{
    $num = $this->conn->exec($sql);
    // 如果有受影响的记录
    if($num > 0){
        // 如果是新增操作,初始化新增主键id属性
        if(null !==$this->conn->lastInsertId()){
            $this->insertId = $this->conn->lastInsertId();
        }
        $this->num = $num; // 返回受影响的记录
    }else{
        $error = $this->conn->errorInfo(); // 获取最后操作错误信息的数组
        var_dump($error);
    }
}
// 获取单条查询结果
public function fetch($sql)
{
    return $this->conn->query($sql)->fetch(PDO::FETCH_ASSOC);
}
// 获取多条查询结果
public function fetchAll($sql)
{
    return $this->conn->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}
}
?>

调用

Demo.php

<?php
/**
 * Db类测试
 */
require 'Db.php';
// 获取Db类实例
$db = Db::getInstance();
// 新增操作
// $sql = "INSERT student SET name='张一鸣',email='ByteDance@qq.com',grade='59',course='golang'";
// $db->exec($sql);
// echo '成功插入了'.$db->num.'条记录,主键id是'.$db->insertId;
// 删除操作
// $sql = "DELETE FROM student WHERE id='4'";
// $db->exec($sql);
// echo '成功删除了'.$db->num.'条记录';
// 更新操作
// $sql = "UPDATE student SET grade='1199' WHERE id='1'";
// $db->exec($sql);
// echo '成功更新了'.$db->num.'条记录';
// 查询单条操作
// $sql = "SELECT id,name,email,grade FROM student WHERE grade < '60'";
// $row = $db->fetch($sql);
// var_dump($row);
// // 查询多条操作
// $sql = "SELECT id,name,email,grade FROM student WHERE grade > '80'";
// $rows = $db->fetchAll($sql);
// var_dump($rows);
?>
原创文章,作者:搜问答版主,如若转载,请注明出处:https://www.sowenda.com/1661.html
-- 展开阅读全文 --
腕表业务在奢侈品集团中的地位逐渐上升
« 上一篇 06-29

发表评论

成为第一个评论的人

作者信息

动态快讯

换一换

热门文章

标签TAG

热评文章

最近回复

Freddiemus
54秒前

[url=https://intratrade.medium.com]инвестиции[/url] https://intratrade.medium.com
[url=https://kapitalprofit.medium.com]инвестиции[/url] https://kapitalprofit.medium.com
[url=https://ermaxinvest.medium.com]инвестиции[/url] https://ermaxinvest.medium.com
[url=https://investbolide.medium.com]инвестиции[/url] https://investbolide.medium.com
[url=https://postila.ru/id7664906/1537112-investitsii]инвестиции[/url] https://postila.ru/id7664906/1537112-investitsii
[url=https://dzen.ru/ermaxinvest]инвестиции[/url] https://dzen.ru/ermaxinvest
[url=https://ermaxinvest.wordpress.com/]инвестиции[/url] https://ermaxinvest.wordpress.com/
[url=https://www.sostav.ru/blogs/266395]инвестиции[/url] https://www.sostav.ru/blogs/266395
[url=https://postila.ru/id7664906/posts]инвестиции[/url] https://postila.ru/id7664906/posts
[url=https://ru.pinterest.com/ermaxinvest/pins/]инвестиции[/url] https://ru.pinterest.com/ermaxinvest/pins/
[url=https://vk.com/ermaxinvest]инвестиции[/url] https://vk.com/ermaxinvest
[url=https://ermaxinvest.blogspot.com]инвестиции[/url] https://ermaxinvest.blogspot.com
[url=https://www.liveinternet.ru/users/ermaxinvest/blog/]инвестиции[/url] https://www.liveinternet.ru/users/ermaxinvest/blog/
https://dzen.ru/a/Y_Qw61k7mG5MrIJD
https://dzen.ru/a/Y_TLxVsr6iK3pvzW
https://dzen.ru/a/Y_yba3bsjBRvyubl
https://dzen.ru/a/Y_2LoqTgzUCgSAPn
https://dzen.ru/a/ZAKhJg7rhRlYTdGH
https://dzen.ru/a/ZAKlcQ7rhRlYT8pN
https://dzen.ru/a/ZAKlu6xrsF7iKk_E
https://dzen.ru/a/ZAgRj_UWBDFK4jnJ
https://dzen.ru/a/ZAlYek_J40-4fgX8
https://dzen.ru/a/ZAlcvzMUvhqwosm_
https://dzen.ru/a/ZAlgF5DTsBHsq3B2
https://dzen.ru/a/ZAlg3QyRKjKh-H8c
https://dzen.ru/a/ZAliYU_J40-4idr3
https://dzen.ru/a/ZAr-pF8Y-h2M_MLW
https://dzen.ru/a/ZAr_qQcogS60rjVV
https://dzen.ru/a/ZAsAlcfjc2ojv3Hn
https://dzen.ru/a/ZAvYTzUq-GLEC-N8
https://dzen.ru/a/ZA0VHH1eXFMwFriQ
https://dzen.ru/a/ZA59PAyRKjKhtxTZ
https://dzen.ru/a/ZA_YP1AWQ3JqRzvk
https://dzen.ru/media/ermaxinvest/akcii-indeksnyh-fondov-64268d634a61b159ef94c4b0
https://dzen.ru/media/ermaxinvest/akcii-rossiiskih-kompanii-64268ea99b207461197f0cd7
https://dzen.ru/media/ermaxinvest/analiz-obligacii-642690464b88007cced50bfb
https://dzen.ru/media/ermaxinvest/volatilnost-akcii-6426915d17fedc0d79411f86
https://dzen.ru/media/ermaxinvest/akcii-indeksnyh-fondov-64268d634a61b159ef94c4b0
https://dzen.ru/media/ermaxinvest/diskontnye-obligacii-64274a8e9b20746119597d33
https://www.sostav.ru/blogs/266395/36528
https://www.sostav.ru/blogs/266395/36672
https://www.sostav.ru/blogs/266395/36678
https://www.sostav.ru/blogs/266395/36697
https://www.sostav.ru/blogs/266395/36710
https://www.sostav.ru/blogs/266395/36714
https://www.sostav.ru/blogs/266395/36728
https://www.sostav.ru/blogs/266395/36749
https://www.sostav.ru/blogs/266395/36756
https://www.sostav.ru/blogs/266395/36758
https://www.sostav.ru/blogs/266395/36782
https://www.sostav.ru/blogs/266395/36807
https://www.sostav.ru/blogs/266395/36825
https://www.sostav.ru/blogs/266395/36826
https://www.sostav.ru/blogs/266395/36850
https://www.sostav.ru/blogs/266395/36849
https://www.sostav.ru/blogs/266395/36850
https://www.sostav.ru/blogs/266395/37078
https://www.sostav.ru/blogs/266395/37079
https://www.sostav.ru/blogs/266395/37080
https://www.sostav.ru/blogs/266395/37081

排行榜