MySQL使用类

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL使用类

<?php

/**

  • Class Mysql

*/
class Mysql
{

// 数据库连接信息
private $dbconfig = array(
    'host' => 'localhost',
    'port' => 3306,
    'user' => 'root',
    'pwd' => '',
    'charset' => 'utf8',
    'dbname' => 'qioku'
);
// 数据库连接资源
private $link;
// 单例对象应用
private static $instance;

/**
 * 构造方法
 * 私有化构造方法,防止类在外部被实例化,但可以在类内实例化
 */
private function __construct($params = array())
{
    // 初始化属性
    $this->initAttr($params);
    // 连接数据库
    $this->connectServer();
    // 设定字符集
    $this->setCharset();
    // 选择默认数据库
    $this->selectDefaultDb();
}

/**
 * 获得单例对象的公共接口方法
 * @param array $params 数据库连接信息
 * @return object 单例的对象
 */
public static function getInstance($params=array())
{
    // 判断是否没有实例化过
    if (!self::$instance instanceof  self){
        // 实例化并保存
        self::$instance = new self($params);
    }
    return self::$instance;
}

/**
 * 初始化属性
 * @param array $params 数据库连接信息
 */
private function initAttr($params)
{
    // 初始化属性,使用array_merge()函数合并另个数组
    $this->dbconfig = array_merge($this->dbconfig,$params);
}

/**
 * 连接目标服务器
 */
private function connectServer()
{
    $host = $this->dbconfig['host'];
    $port = $this->dbconfig['port'];
    $user = $this->dbconfig['user'];
    $pwd = $this->dbconfig['pwd'];
    // 连接数据库服务器
    if ($link = mysqli_connect("$host:$port",$user,$pwd)) {
        $this->link = $link;
    }else {
        die('数据库连接失败!'.mysqli_error());
    }
}

/**
 * 选择数据库
 */
private function selectDefaultDb()
{
    // 判断dbname是否为空,空表示不选择数据库
    if ($this->dbconfig['dbname'] == ''){
        return;
    }
    $sql = "use `{$this->dbconfig['dbname']}`";
    $this->query($sql);
}

/**
 * 设定字符集
 */
private function setCharset()
{
    $sql = "set names {$this->dbconfig['charset']}";
    $this->query($sql);
}

/**
 * 转义字符串
 * $data 待转义的字符串
 * @return string 转义后的字符串
 */
public function escapeString($data)
{
    return mysqli_real_escape_string($data,$this->link);
}

/**
 * 执行sql方法
 * $sql 待执行的sql语句
 */
public function query($sql)
{
    if ($result = mysqli_query($this->link,$sql)){
        return $result;
    }else{
        echo 'SQL执行失败<br>错误的sql语句为:',$sql,'<br>';
        echo '错误代码为:',mysqli_errno($this->link),'<br>';
        echo '错误信息为:',mysqli_error($this->link),'<br>';
        die;
    }
}

/**
 * 查询单条记录
 */
public function fetchRow($sql)
{
    if ($result = $this->query($sql)){
        $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
        return $row;
    }else{
        return false;
    }
}

/**
 * 查询多条记录
 */
public static function fetchAll($sql)
{
    if ($result = self::query($sql)){
        $rows = array();
        while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
            $rows[] = $row;
        }
        mysqli_free_result($result);
        return $rows;
    }else{
        return false;
    }

}

}

使用方法:

<?php
require './mySQLDB.class.php';
$db = mySQLDB::getInstance();

$sql = "select * from dsc_goods where cat_id=1787";
var_dump($db->fetchRow($sql));

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
|
6月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
|
6月前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
|
2月前
|
关系型数据库 MySQL Python
mysql之python客户端封装类
mysql之python客户端封装类
|
5月前
|
关系型数据库 Java MySQL
Java关于Mysql数据库的事物处理类
Java关于Mysql数据库的事物处理类
22 0
|
关系型数据库 MySQL
Mysql匹配字符类
Mysql匹配字符类
91 2
|
存储 SQL 缓存
MySQL-四大类日志
MySQL-四大类日志
116 0
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
|
Java 关系型数据库 MySQL
Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。
Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。
168 0
|
SQL 关系型数据库 MySQL
Java Web简明教程–Java篇[12]–使用连接池的MySQL操作类
Java Web简明教程–Java篇[12]–使用连接池的MySQL操作类
151 0