php简单操作mysql数据库的类

5年以前  |  阅读数:365 次  |  编程语言:PHP 

本文实例讲述了php简单操作mysql数据库的类。分享给大家供大家参考。具体如下:


    <?php
    /**
     * Database class
     *
     * @version: 2.2
     * @revised: 27 may 2007
     *
     **/
    class Database {
     var $host;
     var $name;
     var $user;
     var $pass;
     var $prefix;
     var $linkId;
     function Database($mysql) {
      foreach($mysql as $k => $v){
       $this->$k = $v;
      }
      if(strlen($this->prefix)>0 && substr($this->prefix, -1) !== "_")
      $prefix .= "_";
      $this->prefix = $prefix;
     }
     function getLastID() {
      $id = mysql_fetch_row(mysql_query("SELECT LAST_INSERT_ID()", $this->linkId));
      return $id[0];
     }
     function getPossibleValues($tableA, $whereA) {
      if(gettype($tableA) == "array") {
       $table = "";
       foreach($tableA as $t) {
        $table .= $this->prefix.$t.", ";
       }
       $table = substr($table, 0, -2);
      } else $table = $this->prefix.$tableA;
      if(gettype($whereA) != "array") {
       $whereA = array($whereA);
      }
      $return = array();
      foreach($whereA as $where) {
       $sql = mysql_query("SHOW COLUMNS FROM ".$table." LIKE '%".$where."%'");
       while($arr = mysql_fetch_array($sql)) {
        if(strpos($arr['Type'], 'enum')===0) {
         $vals = substr($arr['Type'], 5, -1);
        } else {
         $vals = substr($arr['Type'], 4, -1);
        }
        $vals = str_replace("'","",$vals);
        $vals = explode(",",$vals);
        $i = 1;
        foreach($vals as $val) {
         $return[$arr['Field']][$i++] = $val;
        }
        $return[$arr['Field']]['default'] = $arr['Default'];
        if($arr['Null'] != "NO") $return[$arr['Field']][0] = NULL;
       }
      }
      return $return;
     }
     function connect() {
      $this->linkId = mysql_connect($this->host, $this->user, $this->pass);
      if(!$this->linkId) {
       return false;
      }
      if(mysql_select_db($this->name, $this->linkId)) return true;
      mysql_close($this->linkId);
      return false;
     }
     function runSelect($tables, $where = "1", $fieldsA = "*", $order = false, $limit = false, $offset = false, $group = false) {
      if(gettype($tables) == "array") {
       $table = "";
       foreach($tables as $t) {
        $table .= $this->prefix.$t.", ";
       }
       $table = substr($table, 0, -2);
      } else $table = $this->prefix.$tables;
      if(gettype($fieldsA) == "array") {
       $fields = "";
       $keys = array_keys($fieldsA);
       if($keys[0] != '0') {
        foreach($keys as $key) {
         $fields .= $key.' AS '.$fieldsA[$key].', ';
        }
       } else {
        foreach($fieldsA as $field) {
         $fields .= $field.', ';
        }
       }
       $fields = substr($fields, 0, -2);
      } else $fields = $fieldsA;
      $query = "SELECT ".$fields." FROM ".$table." WHERE ".$where.
       ($order!== false?" ORDER BY ".$order:($group!==false ? " GROUP BY ".$group : "")).
       ($limit !== false?" LIMIT ".$limit:"").
       ($offset !== false?" OFFSET ".$offset:"");
      return mysql_query($query, $this->linkId);
     }
     function runUpdate($table, $valuesA, $where = "1") {
      if(gettype($valuesA) == "array") {
       $fields = "";
       $values = "";
       $keys = array_keys($valuesA);
       foreach($keys as $key) {
        if($valuesA[$key] !== NULL)
         $values .= "`".$key."`='".str_replace("'",'\'', $valuesA[$key])."',";
        else
         $values .= $key."=NULL,";
       }
       $fields = substr($fields, 0, -1);
       $values = substr($values, 0, -1);
      } else $values = $valuesA;
      $query = "UPDATE ".$this->prefix.$table." SET ".$values." WHERE ".$where;
      if(mysql_query($query,
        $this->linkId))
       return mysql_affected_rows($this->linkId);
      return false;
     }
     function runDelete($table, $where = "1") {
      if(mysql_query("DELETE FROM ".$this->prefix.$table." WHERE ".$where, $this->linkId))
       return mysql_affected_rows($this->linkId);
      return false;
     }
     function runInsert($table, $valuesA, $onDuplicate = NULL) {
      if(gettype($valuesA) == "array") {
       $fields = "";
       $values = "";
       $keys = array_keys($valuesA);
       foreach($keys as $key) {
        $fields .= "`".$key."`, ";
        $values .= ($valuesA[$key]===NULL?"NULL, ":"'".str_replace("'", '\'', $valuesA[$key])."', ");
       }
       $fields = substr($fields, 0, -2);
       $values = substr($values, 0, -2);
      }
      $onDup = "";
      if($onDuplicate != NULL) {
       $onDup = " ON DUPLICATE KEY UPDATE ";
       if(gettype($onDuplicate) == "array") {
        $keys = array_keys($onDuplicate);
        foreach($keys as $key) {
         $onDup .= '`'.$key.'`='.($onDuplicate[$key]===NULL?"NULL,":"'".str_replace("'", '\'', $onDuplicate[$key])."', ");
        }
        $onDup = substr($onDup, 0, -2);
       } else $onDup .= $onDuplicate;
      }
      $query = "INSERT INTO ".$this->prefix.$table.($fields!==NULL?"(".$fields.")":"").
       " VALUES (".$values.")".$onDup;
      if(mysql_query($query, $this->linkId))
       return mysql_affected_rows($this->linkId);
      return false;
     }
     function getCells($table){
      $query = "SHOW COLUMNS FROM `".$table."`";
      $fields = mysql_query($query, $this->linkId) or die('hej');
      return $fields;
     }
     function translateCellName($cellName){
      $sql = $this->runSelect("mysql_cell_translation","mysql_name = '".$cellName."'");
      $row = mysql_fetch_assoc($sql);
      return $row['human_name']?$row['human_name']:'<span class="faded">['.$cellName.']</span>';
     }
     function getError() {
      return mysql_error($this->linkId);
     }
     function close()
     {
      mysql_close($this->linkId);
     }
    }
    ?>

希望本文所述对大家的php+mysql数据库程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例