UCHome: 数据库类class_mysql.php

UCHome针对MySQL数据库实现了一个封装类,没有使用ADODB或者PEAR这样的开源数据库框架,这样做的好处是文件非常少,空间非常小。

1. 数据库配置
和很多的PHP项目一样,UCHome的数据库配置放在了配置文件config.php中,从第9行到16行:

$_SC['dbhost']          = 'localhost'; //督????

$_SC['dbuser']          = 'root';

$_SC['dbpw']              = ''; 

$_SC['dbcharset']         = 'utf8'; 

$_SC['pconnect']         = 0; 

$_SC['dbname']          = 'comsenz'; 

$_SC['tablepre']         = 'uchome_'; 

$_SC['charset']         = 'utf-8'; config.php的内容由安装程序写入,写入后由common.php引入,引入后的内容存放在全局变量$_SC中

 

2. 数据库连接
在common.php的第42行,有这样一个函数调用:
dbconnect();函数dbconnect()的作用就是执行数据库连接处理,其定义在function_common.php(该文件由common.php引入)的第108行到118行:

function dbconnect() {

    global $_SGLOBAL, $_SC;



    include_once(S_ROOT.'./source/class_mysql.php');



    if(empty($_SGLOBAL['db'])) {

        $_SGLOBAL['db'] = new dbstuff;

        $_SGLOBAL['db']->charset = $_SC['dbcharset'];

        $_SGLOBAL['db']->connect($_SC['dbhost'], $_SC['dbuser'], $_SC['dbpw'], $_SC['dbname'], $_SC['pconnect']);

    }

}

 

source/class_mysql.php是UCHome的MySQL封装类,从上面的函数定义可以看到,MySQL的封装类类名是dbstuff,dbconnect()函数创建了该类的一个实例,然后设置字符编码和执行连接,类实例放在了$_SGLOBAL['db']。


3. 表明前缀
很多的PHP项目都可以配置表明前缀,这样做的目的是可以在一个数据库里面实现同一个程序的多次安装,UCHome也可以。UCHome的表明前缀是通过$_SC['tablepre']配置的,默认值为uchome_。执行SQL查询时,通过调用函数tname()来增加前缀。
函数tname()的定义在function_common.php的第216行到219行:

function tname($name) {

    global $_SC;

    return $_SC['tablepre'].$name;

}

 

具体用法:

$query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('magicinlog');

 

4. 数据库查询
一个数据库查询的例子:

$query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('magicinlog');

while ($value = $_SGLOBAL['db']->fetch_array($query)) {

    $list[] = $value;

}

你可能感兴趣的:(mysql)