MySQL使用类


```php
<?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));


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值