PHP的数据库操作类

  $db = new mysql($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding);

  class mysql{

  private $db_host;

  private $db_user;

  private $db_password;

  private $db_table;

  private $db_conn; //数据库连接标识;

  private $result; //执行query命令的结果资源标识

  private $sql; //sql执行语句

  private $pre; //数据库表前缀

  private $coding; //数据库编码,GBK,UTF8,gb2312

  function __construct($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding){

  $this->db_host = $db_host;

  $this->db_user = $db_user;

  $this->db_password = $db_password;

  $this->db_table = $db_table;

  $this->db_conn = $db_conn;

  $this->pre = $pre;

  $this->coding = $coding;

  $this->connect();

  }

  function connect(){

  $this->db_conn = @mysql_connect($this->db_host,$this->db_user,$this->db_password) or die($this->show_error("数据库链接错误,请检查数据库链接配置!"));

  if(!mysql_select_db($this->db_table,$this->db_conn)){

  echo "没有找到数据表:".$this->db_table;

  }

  mysql_select_db($this->db_table,$this->db_conn);

  $this->query("SET NAMES $this->coding");

  }

  /*执行SQL语句的函数*/

  function query($sql){

  if(emptyempty($sql)){

  $this->show_error("你的sql语句不能为空!");

  }else{

  $this->sql = $sql;

  }

  $result = mysql_query($this->sql,$this->db_conn);

  return $this->result = $result;

  }

  /*创建添加新的数据库*/

  public function create_database($database_name){

  $database=$database_name;

  $sqlDatabase = 'create database '.$database;

  return $this->query($sqlDatabase);

  }

  // 根据select查询结果计算结果集条数

  public function db_num_rows(){

  if($this->result==null){

  if($this->show_error){

  $this->show_error("sql语句错误!");

  }

  }else{

  return mysql_num_rows($this->result);

  }

  }

  /*查询服务器所有数据库*/

  //将系统数据库与用户数据库分开,更直观的显示?

  public function show_databases(){

  $this->query("show databases");

  echo "现有数据库:".$amount =$this->db_num_rows($rs);

  echo "";

  $i=1;

  while($row = $this->fetch_array($rs)){

  echo "$i $row[Database]";

  echo "";

  $i++;

  }

  }

  //以数组形式返回主机中所有数据库名

  public function databases()

  {

  $rsPtr=mysql_list_dbs($this->db_conn);

  $i=0;

  $cnt=mysql_num_rows($rsPtr);

  while($i<$cnt)

  {

  $rs[]=mysql_db_name($rsPtr,$i);

  $i++;

  }

  return print_r($rs);

  }

  /*查询数据库下所有的表*/

  function show_tables($database_name){

  $this->query("show tables");

  echo "现有数据库:".$amount = $this->db_num_rows($rs);

  echo "";

  $i=1;

  while($row = $this->fetch_array($rs)){

  $columnName="Tables_in_".$database_name;

  echo "$i $row[$columnName]";

  echo "";

  $i++;

  }

  }

  /*

  mysql_fetch_row() array $row[0],$row[1],$row[2]

  mysql_fetch_array() array $row[0] 或 $row[id]

  mysql_fetch_assoc() array 用$row->content 字段大小写敏感

  mysql_fetch_object() object 用$row[id],$row[content] 字段大小写敏感

  */

  /*取得记录集,获取数组-索引和关联,使用$row['content'] */

  public function fetch_array()

  {

  return @mysql_fetch_array($this->result);

  }

  //获取关联数组,使用$row['字段名']

  public function fetch_ass()

  {

  return @mysql_fetch_assoc($this->result);

  }

  //获取数字索引数组,使用$row[0],$row[1],$row[2]

  public function fetch_row()

  {

  return @mysql_fetch_row($this->result);

  }

  //获取对象数组,使用$row->content

  public function fetch_Object()

  {

  return @mysql_fetch_object($this->result);

  }

  //简化查询select

  public function findall($table){

  $table = $this->fulltablename($table);

  $this->query("select * from $table");

  }

  public function select($table,$columnName,$condition){

  $table = $this->fulltablename($table);

  if(emptyempty($columnName)){

  $columnName = "*";

  }

  $this->query("SELECT $columnName FROM $table $condition");

  }

  //简化的insert

  function insert($table,$arr){

  $table = $this->fulltablename($table);

  $sql = "INSERT INTO $table ";

  if(!is_array($arr)){

  $this->show_error("请输入参数数组!");

  }else{

  $k = "";

  $v = "";

  foreach($arr as $key => $value){

  $k .= "`$key`,";

  $v .= "'".$value."',";

  }

  }

  $sql = $sql." (".substr($k,0,-1).") VALUES (".substr($v,0,-1).")";

  $this->query($sql);

  }

  //简化的update

  function update($table,$arr,$where){

  $table = $this->fulltablename($table);

  $sql = "UPDATE $table SET ";

  if(!is_array($arr)){

  $this->show_error("请输入参数数组!");

  }else{

  foreach($arr as $key => $value){

  $sql .= " `".$key."` = '".$value."' ,";

  }

  }

  $sql = substr($sql,0,-1)." where ".$where;

  return $this->query($sql);

  }

  //简化的delete

  function delete($table,$where = ""){

  $table = $this->fulltablename($table);

  if(emptyempty($where)){

  $this->show_error("条件不能为空!");

  }else{

  $where = " where ".$where;

  }

  $sql = "DELETE FROM $table ".$where;

  //echo $sql;

  return $this->query($sql);

  }

  //取得上一步 INSERT 操作产生的 ID

  public function insert_id(){

  return mysql_insert_id();

  }

  //加上前缀的数据表

  public function fulltablename($table){

  return $table = $this->pre.$table;

  }

  //查询字段数量

  public function num_fields($table){

  $table = $this->fulltablename($table);

  $this->query("select * from $table");

  echo "";

  echo "字段数:".$total = mysql_num_fields($this->result);

  echo "

  ";

  for ($i=0; $i<$total; $i++){

  print_r(mysql_fetch_field($this->result,$i) );

  }

  echo "";

  echo "";

  }

  //取得 MySQL 服务器信息

  public function mysql_server($num=''){

  switch ($num){

  case 1 :

  return mysql_get_server_info(); //MySQL 服务器信息

  break;

  case 2 :

  return mysql_get_host_info(); //取得 MySQL 主机信息

  break;

  case 3 :

  return mysql_get_client_info(); //取得 MySQL 客户端信息

  break;

  case 4 :

  return mysql_get_proto_info(); //取得 MySQL 协议信息

  break;

  default:

  return mysql_get_client_info(); //默认取得mysql版本信息

  }

  }

  //析构函数,自动关闭数据库,垃圾回收机制

  /*public function __destruct()

  {

  if(!empty($this->result)){

  $this->free();

  }

  mysql_close($this->$db_conn);

  }*/

  /*获得客户端真实的IP地址*/

  function getip(){

  if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))

  {

  $ip = getenv("HTTP_CLIENT_IP");

  }

  else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){

  $ip = getenv("HTTP_X_FORWARDED_FOR");

  }

  else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))

  {

  $ip = getenv("REMOTE_ADDR");

  }

  else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){

  $ip = $_SERVER['REMOTE_ADDR'];

  }

  else{

  $ip = "unknown";

  }

  return($ip);

  }

  function show_error($str){

  echo "Javascript'> alert('".$str."');history.back(-1);";

  }

  }

  ?>

时间: 2025-01-21 01:34:41

PHP的数据库操作类的相关文章

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

[原创] EasyASP v1.5简化ASP开发,包含数据库操作类

EasyASP v1.5简化ASP开发,包含数据库操作类 EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作.目前只提供了VBScript版,JScript版将来可能会提供.详细说明请下载帮助手册,里面有非常详细的使用方法说明及源码范例. 源码

ASP通用数据库操作类源代码

<%'=========================================================================='文件名称:clsDbCtrl.asp'功 能:数据库操作类'作 者:coldstone (coldstone[在]qq.com)'程序版本:v1.0.5'完成时间:2005.09.23'修改时间:2007.10.30'版权声明:可以在任意作品中使用本程序代码,但请保留此版权信息.'          如果你修改了程序中的代码并得到更好的应用,

Access数据库操作类

Access数据库操作类AccessHelper using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControl

一个简单的asp数据库操作类

数据|数据库 <%'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'数据库操作类'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'名称:Class_DBOperate'版本:0.2'作者:qihangnet'更新:2005年6月14日'作用:简化数据库操作的流程'授权:免费使用'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Class Class_DBOperate '************************

一个基于PDO的数据库操作类(新) 一个PDO事务实例

复制代码 代码如下: <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 * 20110630 * 整体修改方法,合并部分参数 * 规范代码,一个方法里只有1个return语句 */ /* 参数说明 int $debug 是否开启调试,开启则输出sql语句 int $mode 0 返回数组 1 返回

一个基于PDO的数据库操作类

百度之后决定使用PDO,至于为什么选择PDO,这里就不再多说,大家自己去百度下就能明白. 既然要换,那最基本就需要有个常用的数据库操作类,也就是所谓的增删改查等,昨晚捣腾了一晚,大致弄出了个雏形,以下就是代码,希望大家能给出点意见. 复制代码 代码如下: <?php /* 作者:胡睿 日期:2011/03/19 电邮:hooray0905@foxmail.com 20110319 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 */ /* 参数

简单快速有趣的MySQL数据库操作类:SimpleDB

mysql|数据|数据库 自己写着玩的,代码没有测试,不过觉得思路不错,如果能够加上部分异常处理的功能,应该比较帅了,支持PHP4/PHP5,恩,虽然没有ADOdb或者PEAR::DB强,不错一般应用应该不错,恩. 喜欢的就自己拿去用吧,自己随便改,呵呵,也欢迎提意见.(注释遵循PHPDoc的标准,便于生成手册)  注意:代码未经测试,出现问题可要自己负责哇,呵呵.         <?//==========================================// 文件: Simp

ASP.NET[C#]的ACCESS数据库操作类

access|asp.net|数据|数据库 ASP.NET[C#]的ACCESS数据库操作类       //网上很多都是操作SQL SER 的,整理了一下,不是很完善,但不影响使用,呵呵--       //private string datapatch = ConfigurationSettings.AppSettings["acessconn"];//数据库地址                                            private string

一个数据库操作类的实例(一.Command类部分)

command|数据|数据库 using System;namespace com.joybase.DB{ /// <summary> /// 数据库操作类,通过这一个类的对外接口,可以获得以下特性: /// 1.不必区分数据库类型,而去考虑是使用System.Data.SqlClient实现,或者使用System.Data.OleDB来实现; /// 2.可以将SQL语句进行模式化,比如输入"select * from tablename where username=? orde