文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>今天写的数据库操作的一个类

今天写的数据库操作的一个类

时间:2006-04-21  来源:webvista



?php
/**
* 系统要求 PHP5
*/
/**
* Enter description here...
*
* @param String $tablePre ='TB_' 表的前缀
*/
Class MySQL {
    public $connetNums = 0;    // 数据库当前页面连接次数
   
    /**
     * 数据库连接
     *
     * @param String $dbhost 服务器名
     * @param String $dbuser 用户名
     * @param String $dbpw 密码
     * @param String $dbname 数据库名
     * @param bool $pconnect 是否永久连接
     */
    function MySQL($pconnect = 0) {
        global $dbcharset,$dbhost, $dbuser, $dbpw,$dbname;
        if($pconnect) {
            if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
                $this->Err('MYSQL 不能永久连接数据库,请确定数据库用户名,密码设置正确,并且服务器支持永久连接
');
                exit;
            }
        } else {
            if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
                $this->Err('MYSQL 连接数据库失败,请确定数据库用户名,密码设置正确
');
                exit;
            }
        }
        
        if($this->version()  '4.3.0') die('需要PHP版本>=4.3.0');
        
        if($this->version() > '4.1') {
            if(@$dbcharset){
                mysql_query("SET NAMES '$dbcharset'");
            }        
        }
        
        if( $this->version() > '5.0.1' ){
            mysql_query("SET sql_mode=''");
        }
        
        if(!mysql_select_db($dbname)){
            $this->Err("MYSQL 连接成功,但当前使用的数据库 {$dbname} 不存在
");
            exit;
        }
    }
   
    // 获取MySQL版本
    function version(){
        return mysql_get_server_info();
    }
   
    // 关闭数据库
    public function close() {
        return mysql_close(); echo 'mysql closed';
    }
    // 选择数据库
    function selectDB($db=''){
        
        $db or die('当前数据库名为空
');   
            
        if (!mysql_select_db($db)){
            $this->Err("当前使用的数据库 {$db} 不存在
");
        }
    }
    /**
     * 简单查询
     *
     * @param String $SQL
     * @param const $type
     * @return mixed
     */
    function query($SQL,$type='') {
        
        $query = ($type=='U_B' && @function_exists('mysql_unbuffered_query')) ?
         mysql_unbuffered_query($SQL) : mysql_query($SQL);
        $this->connetNums++;
        
        if (!$query) $this->Err("数据库连接出错:$SQL
");
        return $query;
    }
    /**
     * 向 MySQL 发送一条 SQL 查询,并不获取和缓存结果的行
     *
     * @param String $SQL
     * @return array $RS 结果记录集
     */
    function getOne($SQL){
        $query=$this->query($SQL,'U_B');
        
        $RS =& mysql_fetch_array($query, MYSQL_ASSOC);
        return $RS;
    }
    /**
     * 从结果集获取并生成数组
     *
     * @param array $query 结果集
     * @param const $resultType
     * @return mixed 关联数组结果
     */
    function fetchArray($query, $resultType = MYSQL_ASSOC) {
        return mysql_fetch_array($query, $resultType);
    }
    /**
     * 取得前一次 MySQL 操作所影响的记录行数
     *
     * @return int 行数
     */
    function affectedRows() {
        return mysql_affected_rows();
    }
    /**
     * 取得结果集中行的数目
     *
     * @param String $query
     * @return int 行数
     */
    function numRows($query) {
        $rows = mysql_num_rows($query);
        return $rows;
    }
    /**
     * 释放MySQL结果内存
     * 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。
     * 在脚本结束后所有关联的内存都会被自动释放。
     *
     * @param String $query
     * @return boolean
     */
    function free_result($query) {
        return mysql_free_result($query);
    }
    /**
     * 取得上一步 INSERT 操作产生的 ID
     *
     * @return int $id
     */
    function insert_id() {
        $id = mysql_insert_id();
        return $id;
    }
   
    /**
     * 从文件载入SQL
     *
     * @param String $file (表单传来)文件的路径
     * @param String $replace
     * @return String $check
     */
    function insert_file($file,$replace=''){
        global $filedb,$timestamp;
        
        $readfiles=file_get_contents($file); //如果改用readfile()可以使用更早版本的PHP
        if($replace){
            $readfiles=str_replace('$timestamp',"$timestamp",$readfiles);
        }
        $detail=explode("\n",$readfiles);
        $count=count($detail);
        for($j=0;$j$count;$j++){
            $ck=substr($detail[$j],0,4);
            if( ereg("#",$ck)||ereg("--",$ck) ){
                continue;
            }
            $array[]=$detail[$j];
        }
        $read=implode("\n",$array);
        $sql=str_replace("\r",'',$read);
        $detail=explode(";\n",$sql);
        $count=count($detail);
        for($i=0;$i$count;$i++){
            $sql=str_replace("\r",'',$detail[$i]);
            $sql=str_replace("\n",'',$sql);
            $sql=trim($sql);
            if($sql){
                $this->query($sql);
                $check++;
            }
            
   
        }
        return $check;
    }
   
    /**
     * 错误提示
     *
     * @param String $msg
     * @return String 错误信息
     */
    function Err($msg='') {
        $sqlerror = mysql_error();
        $sqlerrno = mysql_errno();
        echo "$msg
$sqlerror
$sqlerrno";
    }
}
?>


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载