php简单操作mysql数据库的类


Posted in PHP onApril 16, 2015

本文实例讲述了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 相关文章推荐
实现树状结构的两种方法
Oct 09 PHP
ADODB结合SMARTY使用~超级强
Nov 25 PHP
php中的静态变量的基本用法
Mar 20 PHP
php实现excel中rank函数功能的方法
Jan 20 PHP
php生成数字字母的验证码图片
Jul 14 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
PHP扩展程序实现守护进程
Apr 16 #PHP
php简单实现查询数据库返回json数据
Apr 16 #PHP
PHP中SESSION的注销与清除
Apr 16 #PHP
PHP中trim()函数简单使用指南
Apr 16 #PHP
php检查是否是ajax请求的方法
Apr 16 #PHP
php将日期格式转换成xx天前的格式
Apr 16 #PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 #PHP
You might like
也说JavaScript中String类的replace函数
2011/09/22 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Python函数式编程指南(四):生成器详解
2015/06/24 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
Python tkinter和exe打包的方法
2020/02/05 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
Django xadmin安装及使用详解
2020/10/26 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
大学生四个方面的自我评价
2013/09/19 职场文书
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
会计应届生的自荐信
2013/12/13 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
初中生期末评语大全
2014/04/24 职场文书
仓管员岗位职责
2015/02/03 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
汉语拼音教学反思
2016/02/22 职场文书
nginx优化的六点方法
2021/03/31 Servers
MySQL中连接查询和子查询的问题
2021/09/04 MySQL
Python Numpy库的超详细教程
2022/04/06 Python