php学习吧 关注:1,690贴子:3,298
  • 3回复贴,共1

常用PHP类mysql

只看楼主收藏回复



1楼2011-09-23 23:54回复
    <?php
    /*
    模块名称:MYSQL数据库处理类
    作者:项希盛,QQ:86333956
    以下为数据库相关函数以及配置文件
    该文件一般不需要修改,如有代码疑问,欢迎来我的BLOG反应程序BUG。
    本人愿意帮助大家一起学习PHP
    //*/
    class ClassMysqlXX{
    var $db;
    var $ResourceID="";
    function __construct($rq_dbinfo){
    $this->db=$rq_dbinfo;
    //print_r($rq_dbinfo);
    }
    function conn(){
    //print_r($this->db['dbhost']);
    if($this->ResourceID==''){
    register_shutdown_function(array($this,"clean_exit"));
    //echo '1';
    $this->ResourceID=@mysql_connect($this->db['dbhost'].":".$this->db['dbport'],$this->db['dbuser'],$this->db['dbpw']);
    if($this->ResourceID==''){
    echo "连接数据库失败!";
    exit();
    }
    $db_selected=mysql_select_db($this->db['dbname'],$this->ResourceID);//选择数据库
    if(!$db_selected){
    die("Can't use database : ".mysql_error());
    }
    $dbcharset=$this->db['dbcharset'];
    $dbcharset=str_replace('-','',$dbcharset);
    mysql_query("set names '$dbcharset'",$this->ResourceID);//设置数据库连接字符集为db['dbcharset']
    }
    }
    function QueryError($error,$sql){
    echo $error;
    return(1);
    }
    function array_iconv($in_charset,$out_charset,$arr){
    foreach($arr as $key=>$name){
    $key=iconv($in_charset,$out_charset.'//IGNORE',$key);
    $name=iconv($in_charset,$out_charset.'//IGNORE',$name);
    $arr2[$key]=$name;
    }
    return($arr2);
    }
    function queryRows($sql){
    $this->conn();
    $sqlsign=strtoupper(substr($sql,0,6));//获取SQL标记,例如SELECT
    $dbcharset=str_replace('utf8','utf-8',$this->db['dbcharset']);
    $outcharset=str_replace('utf8','utf-8',$this->db['outcharset']);
    if($dbcharset!=$outcharset){$sqlnew=iconv($outcharset,$dbcharset."//IGNORE",$sql);}else{$sqlnew=$sql;}
    $sqlnew=str_replace("{tablepre}",$this->db['tablepre'],$sqlnew);
    $error=0;//$rows=0;
    switch($sqlsign){
    case("SELECT"):
    $rows=array();
    $result=mysql_query($sqlnew,$this->ResourceID)or $error=$this->QueryError(mysql_error(),$sql);
    if($error==0){
    $rowsi=0;//初始化
    while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
    //array_walk($row,"myiconv",$db_charset1);
    $row=$this->array_iconv($dbcharset,$outcharset,$row);
    $rows[$rowsi]=$row;
    $rowsi++;//累计
    }
    mysql_free_result($result);
    }
    break;
    case("INSERT")://如果是执行插入操作的就立即返回刚插入的号码
    mysql_query($sqlnew,$this->ResourceID)or $error=$this->QueryError(mysql_error(),$sql);
    if($error==0){$rows=mysql_insert_id($this->ResourceID);}else{$rows=0;}
    break;
    default:
    mysql_query($sqlnew,$this->ResourceID)or $error=$this->QueryError(mysql_error(),$sql);
    if($error==0){$rows=1;}else{$rows=0;}
    }
    return($rows);
    }
    function update($tableName,$dataArr,$postData,$postField,$sqlWhere){
    $sql=$this->sql_update($tableName,$dataArr,$postData,$postField,$sqlWhere);
    // echo $sql;
    return($this->queryRows($sql));
    }
    function insert($tablename,$dataArr,$postdata,$postfield){
    $sql=$this->sql_insert($tablename,$dataArr,$postdata,$postfield);
    // echo $sql;
    return($this->queryRows($sql));
    }
    function clean_exit(){//结束
    mysql_close($this->ResourceID);
    }
    function sql_insert($tableName,$dataArr,$postData,$postField){
    //添加记录
    $sql="";$field1='';$value1="";
    foreach($dataArr as $key=>$value){
    $field1.=','.$key;
    $value1.=",'".$value."'";
    }
    $fieldArr=explode(",",$postField);
    foreach($fieldArr as $key=>$name){
    $field1.=','.$name;
    $value1.=",'".(isset($postData[$name])?$postData[$name]:'')."'";
    }
    $field1=substr($field1,1);$value1=substr($value1,1);
    $sql.="INSERT INTO ".$tableName."(".$field1.")VALUES(".$value1.");";
    return($sql);
    }
    function sql_update($tableName,$dataArr,$postData,$postField,$sqlWhere){
    $sql="UPDATE ".$tableName." SET ";
    $sql1="";
    foreach($dataArr as $key=>$value){
    $sql1.=','.$key."='".$value."'";
    }
    $fieldArr=explode(",",$postField);
    foreach($fieldArr as $key=>$name){
    $sql1.=",".$name."='".(isset($postData[$name])?$postData[$name]:'')."'";
    }
    $sql1=substr($sql1,1);
    $sql.=$sql1." WHERE 1=1".$sqlWhere.";";
    return($sql);
    }
    }
    ?>
    


    2楼2011-09-23 23:55
    回复
      如有需要请加我QQ获取最新版本


      3楼2011-09-23 23:55
      回复


        IP属地:四川来自掌上百度4楼2011-10-09 13:00
        回复