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 相关文章推荐
php 前一天或后一天的日期
Jun 28 PHP
php IP及IP段进行访问限制的代码
Dec 17 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
php中smarty区域循环的方法
Jun 11 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
详解php语言最牛掰的Laravel框架
Nov 20 PHP
PHP微信H5支付开发实例
Jul 25 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
TP3.2框架分页相关实现方法分析
Jun 03 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
基于mysql的论坛(3)
2006/10/09 PHP
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
PHP数组函数知识汇总
2016/05/12 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
python复制文件的方法实例详解
2015/05/22 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
python实现宿舍管理系统
2019/11/22 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
超级搞笑检讨书
2014/01/15 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
关于环保的标语
2014/06/13 职场文书
大专毕业生求职信
2014/07/05 职场文书
论群众路线学习笔记
2014/11/06 职场文书
同学聚会感言一句话
2015/07/30 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏
Python编写冷笑话生成器
2022/04/20 Python
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL