php5.3 mysql数据库的 mysql引擎 通用配置文件(简易版)

同一个类里连两个数据库,实例化两次即可。

实例:

<?php
header('Content-Type:application/json; charset=utf-8');  
define("NEW_DB_CONFIG", '1'); //选择数据库
include_once(BABY_PATH . "/common/inc/global.php");//包含数据库配置文件
……
……
……
    protected $one_ms;
    protected $two_ms;
    public function __construct($get)
    {
        
        $one_config = array(
            'host'     => '******', 
            'username' => '***', 
            'password' => '***', 
            'dbname'   => '***'
            );
        $this->one_ms = new Mysqls(false, $one_config); //一库(传参连接数据库)
        $this->two_ms = new Mysqls();//二库(使用默认参数链接数据库)
    }
……
……
……
数据库操作:(具体参数  参照配置文件)
1、执行sql:query();
    $sql ="update `table` set sex='xxx' where id=xx";//原sql,update,delete,insert
    $this->one_ms->query($sql);
2、查询
    $sql ="update `table` set sex='xxx' where id=xx";
    $this->one_ms->getRow($sql);//一行
    $this->one_ms->getRows($sql);//多行
3、插入、更新(sql构造器)
   $arr = array(
    'name'=>'xxx',
    'sex' => 1,
    'state'=> 1
    );
    $this->one_ms->insert('table',$arr);//插入
    $this->one_ms->update('table',"id={$id}",$arr);//更新

1、数据库配置文件

2、数据库操作类

配置文件:

<?php
if(NEW_DB_CONFIG==1){
        define("DB_HOST",'***.***.***.***.***');//数据库配置
        define("DB_USERNAME",'sqlname1');
        define("DB_PASSWORD",'sqlpass1');
        define("DB_NAME",'dbname1');
        define("DB_SLAVE_HOST",'***.***.***.***.***');//数据库配置
        define("DB_SLAVE_USERNAME",'SLAVE_sqlname1');
        define("DB_SLAVE_PASSWORD",'SLAVE_sqlpass1');
        define("DB_SLAVE_NAME",'SLAVE_dbname1');
}else if(NEW_DB_CONFIG==2){
        define("DB_HOST",'***.***.***.***.***');//数据库配置
        define("DB_USERNAME",'sqlname');
        define("DB_PASSWORD",'sqlpass');
        define("DB_NAME",'dbname');
        define("DB_SLAVE_HOST",'***.***.***.***.***');//数据库配置
        define("DB_SLAVE_USERNAME",'SLAVE_sqlname');
        define("DB_SLAVE_PASSWORD",'SLAVE_sqlpass');
        define("DB_SLAVE_NAME",'SLAVE_dbname');
}
//辅助库(主)
define("DB_HOST_FUZHU",'****');//数据库配置
define("DB_USERNAME_FUZHU",'***');
define("DB_PASSWORD_FUZHU",'***');
define("DB_NAME_FUZHU",'***');
//辅助库(从)
define("DB_SLAVE_HOST_FUZHU",'****');//数据库配置
define("DB_SLAVE_USERNAME_FUZHU",'***');
define("DB_SLAVE_PASSWORD_FUZHU",'****');
define("DB_SLAVE_NAME_FUZHU",'***');

//同时连接其他库时备用baby库

define("DB_OTHER_HOST",'1****0');//数据库配置
define("DB_OTHER_USERNAME",'***');
define("DB_OTHER_PASSWORD",'a***#');
define("DB_OTHER_NAME",'***');
define("DB_OTHER_SLAVE_HOST",'***');//数据库配置
define("DB_OTHER_SLAVE_USERNAME",'***');
define("DB_OTHER_SLAVE_PASSWORD",'****');
define("DB_OTHER_SLAVE_NAME",'***');

global $redis_host;
$redis_host = "***.***.***.***";

数据库操作类:

<?php
ini_set("display_errors", 'Off');
error_reporting(0);
date_default_timezone_set('Asia/Shanghai');
define("DB_HOST", 'localhost');
define("DB_USERNAME", 'root');
define("DB_PASSWORD", 'root');
define("DB_NAME", 'spider');

class Mysqls
{
    private $dblink;
    private $config = array(
        'host' => DB_HOST,
        'username' => DB_USERNAME,
        'password' => DB_PASSWORD,
        'dbname' => DB_NAME
    );

    function __construct($is_slave = false, $p = array())
    {
        $this->dblink = false;
        if (isset($p['host'])) {
            $this->config = $p;
            return true;
        }
    }

    function query($sql)
    {
        if (!$this->dblink) {
            $this->dblink = mysql_connect($this->config['host'], $this->config['username'], $this->config['password']) or die('连接失败:' . mysql_error()
            );
            mysql_select_db($this->config['dbname'], $this->dblink) or die('连接失败:' . $this->config['host'] . "::" . mysql_error());
            mysql_query("set names utf8", $this->dblink);
        }
        return mysql_query($sql, $this->dblink);
    }

    /**
     * 取一条数据
     **/
    function getRow($sql)
    {
        $query = $this->query($sql);
        if ($query) {
            return mysql_fetch_array($query, MYSQL_ASSOC);
        }
        return false;
    }

    /**
     * 取多条数据
     **/
    function getRows($sql)
    {
        $query = $this->query($sql);
        if ($query) {
            $data = array();
            while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
                $data[] = $row;
            }
            return $data;
        }
        return false;
    }

    /**
     * 插入数据,debug为真时返回sql
     **/
    function insertId($sql = false)
    {
        return mysql_insert_id($this->dblink);
    }

    function insert($table, $data, $return = false, $debug = false)
    {
        if (!$table) {
            return false;
        }
        foreach ($data as $field => $value) {
            $fields[] = '`' . $field . '`';
            $values[] = "'" . addslashes($value) . "'";
        }
        if (empty($fields) || empty($values)) {
            return false;
        }
        $sql = 'INSERT INTO `' . $table . '` (' . join(',', $fields) . ') VALUES (' . join(',', $values) . ')';
        if ($debug) {
            return $sql;
        }
        $query = $this->query($sql);
        return $return ? mysql_insert_id() : $query;
    }

    /**
     * 更新数据
     **/
    function update($table, $condition, $data, $limit = 1, $debug = false)
    {
        if (!$table) {
            return false;
        }
        foreach ($data as $field => $value) {
            if (strpos($value, $field) === 0 &&
                (substr($value, strlen($field), 1) == "+"
                    || substr($value, strlen($field), 1) == "-")
            ) {
                $set[] = $field . '=' . addslashes($value);
            } else {
                $set[] = '`' . $field . '`=' . "'" . addslashes($value) . "'";
            }
        }
        if (empty($set)) {
            return false;
        }
        $sql = 'UPDATE `' . $table . '` SET ' . join(',', $set) . ' WHERE ' . $condition . ' ' . ($limit ? 'LIMIT ' . $limit : '');
        if ($debug) {
            return $sql;
        }
        return $this->query($sql);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值