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 随机生成10位字符代码
Mar 26 PHP
php 魔术方法使用说明
Oct 20 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
php中字符集转换iconv函数使用总结
Oct 11 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
PHP对接阿里云虚拟号的实现(号码隐私保护)
Apr 06 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
关于crontab的使用详解
2013/06/24 PHP
浅析PHP绘图技术
2013/07/03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
Symfony生成二维码的方法
2016/02/04 PHP
学习PHP session的传递方式
2016/06/15 PHP
php字符集转换
2017/01/23 PHP
PHP中cookie知识点学习
2018/05/06 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
见习期自我鉴定
2013/11/07 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
继承权公证书
2014/04/09 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript