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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
PHP Ajax实现页面无刷新发表评论
Jan 02 PHP
php程序效率优化的一些策略小结
Jul 17 PHP
php异常处理技术,顶级异常处理器
Jun 13 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
php生成图片验证码的实例讲解
Aug 03 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
PHP laravel中的多对多关系实例详解
Jun 07 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
解决Laravel5.2 Auth认证退出失效的问题
Oct 14 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 23 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
PHP自定义错误用法示例
2016/09/28 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
Python中使用partial改变方法默认参数实例
2015/04/28 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
python实现发送邮件功能
2017/07/22 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
详解python编译器和解释器的区别
2019/06/24 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
一年级评语大全
2014/04/23 职场文书
情况说明书格式范文
2014/05/06 职场文书
大学生自荐材料范文
2014/12/30 职场文书
论文答谢词
2015/01/20 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript