现在的位置: 首页 > 综合 > 正文

UCHome: 数据库类class_mysql.php

2012年05月11日 ⁄ 综合 ⁄ 共 1396字 ⁄ 字号 评论关闭

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;
}

抱歉!评论已关闭.