自己编了一个mysql类。请指正

mysql

文件名mysql.class.php
<?
//###################### Start Introduce #######################################
// mysql连接类
// author: bluemaple , emaile: bluemaple@x263.net
// 可以执行一般mysql命令,如insert,delete,select,update
// 使用方法:在需要的文件前面加入
// require("./mysql.class.php");
// $DB=new DB_MYSQL;            // 加载类
// $DB->dbServer="localhost";   // 连接数据库地址
// $DB->dbUser="root";          // 用户名
// $DB->dbPwd="";               // 密码
// $DB->dbDatabase="we";        // 数据库名称
// $DB->connect();             // 连接数据库
// 使用中可以更改数据库
// 可以用到的函数说明
// query($sql,$dbbase);         // 可以直接执行
// query_first($sql,$dbbase);   // 查询返回只有一条记录,$sql为sql语句,$dbbase为你选者数据库(可以不要)
// fetch_array($sql,$dbbase);   // 查询返回一组记录,可以用num_rows得到返回的数字
// insert,update,delete 皆为执行命令,其中可用$affected_rows;得到返回的数目
// 在insert时,可以用insert_id得到插入结果的返回id数
// count_records($table,$index,$where,$dbbase)// 为得到一个表记录的数目,$table为表名,$index为key,$where为条件,$dbbase为数据库,后两个可以不选
//####################### End Introduce ########################################

class DB_MYSQL          // 数据库mysql查询的类
{   
  var $dbServer;        // 数据库连接服务地址
  var $dbDatabase;      // 所选择的数据库,初始状态
  var $dbbase="";       // 后面可以改变的
  var $dbUser;          // 登陆用户名
  var $dbPwd;           // 登陆用户密码  
  var $dbLink;          // 数据库连接指针
  var $query_id;        // 执行query命令的指针
  var $num_rows;        // 返回的条目数
  var $insert_id;       // 传回最后一次使用 INSERT 指令的 ID
  var $affected_rows;   // 传回query命令所影响的列数目
                  // INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。
                  // delete 如果不带where,那么则返回0
     
  function connect($dbbase="")    // 连接数据库函数,包括连接数据库
        {
         global $usepconnect;   // 是否采用永久连接,$userpconnect在外部设置。
         if ($usepconnect==1){
                $this->dbLink=@mysql_pconnect($this->dbServer,$this->dbUser,$this->dbPwd);
                              } else {
                $this->dbLink=@mysql_connect($this->dbServer,$this->dbUser,$this->dbPwd);
                }
          if(!$this->dbLink) $this->halt("连接出错,无法连接!!!");
          if ($dbbase=="") {
            $dbbase=$this->dbDatabase;
            }                        
        if(!mysql_select_db($dbbase, $this->dbLink))  // 连接数据库
                          { $this->halt("不能够用这个数据库,请检查这个数据库是否正确!!!");}
          }
  
  function change_db($dbbase=""){ // 改变数据库
      $this->connect($dbbase);
      }

  function query_first($sql,$dbbase=""){ // 返回一个值的sql命令
      $query_id=$this->query($sql,$dbbase);
        $returnarray=mysql_fetch_array($query_id);
        $this->num_rows=mysql_num_rows($query_id);
      $this->free_result($query_id);      
      return $returnarray;
      }
  
  function fetch_array($sql,$dbbase="",$type=0){ // 返回一个值的sql命令
                           // type为传递值是name=>value,还是4=>value
      $query_id=$this->query($sql,$dbbase);
      $this->num_rows=mysql_num_rows($query_id);
      for($i=0;$i<$this->num_rows;$i++){
          if($type==0)
              $array[$i]=mysql_fetch_array($query_id);
          else
              $array[$i]=mysql_fetch_row($query_id);
          }
      $this->free_result($query_id);
      return $array;
      }
  
  function delete($sql,$dbbase=""){ // 删除命令
      $query_id=$this->query($sql,$dbbase);
      $this->affected_rows=mysql_affected_rows($this->dbLink);
      $this->free_result($query_id);
        }
  
  function insert($sql,$dbbase=""){ // 插入命令
      $query_id=$this->query($sql,$dbbase);
      $this->insert_id=mysql_insert_id($this->dbLink);
      $this->affected_rows=mysql_affected_rows($this->dbLink);
      $this->free_result($query_id);
        }
  
  function update($sql,$dbbase=""){  //  更新命令
      $query_id=$this->query($sql,$dbbase);
      $this->affected_rows=mysql_affected_rows($this->dbLink);      
      $this->free_result($query_id);
      }
  
  function count_records($table,$index="id",$where="",$dbbase=""){ // 记录总共表的数目
                                                   // where为条件
                                                   // dbbase为数据库
                                                   // index为所选key,默认为id
        if($dbbase!="") $this->change_db($dbbase);
        $result=@mysql_query("select count(".$index.") as 'num' from $table ".$where,$this->dbLink);
        if(!$result) $this->halt("错误的SQL语句: ".$sql);
        @$num = mysql_result($result,0,"num");     
        return $num;
      }
  
  function query($sql,$dbbase=""){   // 执行queyr指令
      if($dbbase!="") $this->change_db($dbbase);
    $this->query_id=@mysql_query($sql,$this->dbLink);
    echo "d";
    if(!$this->query_id) $this->halt("错误的SQL语句: ".$sql);
    return $this->query_id;
      }
    
  function halt($errmsg)  // 数据库出错,无法连接成功
        {
            $msg="<h3><b>数据库出错!</b></h3><br>";
            $msg.=$errmsg;
            echo $msg;
            die();
      }

  function free_result($query_id)  // 释放query选者
        {
        @mysql_free_result($query_id);
        }

  function close()        //关闭数据库连接
        {
      mysql_close($this->dbLink);
        }
}
?>

以下是使用方法

text.php
<?
require("./mysql.class.php");
$DB=new DB_MYSQL;
$DB->dbServer="localhost";
$DB->dbUser="root";
$DB->dbPwd="";
$DB->dbDatabase="we";
$DB->connect(); // 连接数据库
?>

时间: 2024-11-28 15:46:20

自己编了一个mysql类。请指正的相关文章

一个mysql类

---------- php debug ----------Server=localhost;DataBase=mysql;UserID=root;PassWord=123456resource(5) of type (mysql result) Output completed (1 sec consumed) - Normal Termination<?phpclass DBCLS{#----------------------------------------------------#

初学者写一个数据库类,请大家提提意见

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Data.Sql;usingSystem.Data.SqlClient;namespaceFsVbBoyLinkDataBaseLibrary{publicclassLinkClass:Attribute{privateDataTableNewTable;privateDataSetNewDataSet;pr

PHP基于单例模式实现的mysql类_php技巧

本文实例讲述了PHP基于单例模式实现的mysql类.分享给大家供大家参考,具体如下: <?php defined('ACC')||exit('Access Denied'); // 封装mysql操作类,包括连接功能,及查询功能. class mysql extends absdb{ protected static $ins = null; protected $host; // 主机名 protected $user; // 用户名 protected $passwd; // 密码 prot

php基于单例模式封装mysql类完整实例_php技巧

本文实例讲述了php基于单例模式封装mysql类.分享给大家供大家参考,具体如下: 类: <?php header("content-type:text/html;charset=utf-8"); //封装一个类 /* 掌握满足单例模式的必要条件 (1)私有的构造方法-为了防止在类外使用new关键字实例化对象 (2)私有的成员属性-为了防止在类外引入这个存放对象的属性 (3)私有的克隆方法-为了防止在类外通过clone成生另一个对象 (4)公有的静态方法-为了让用户进行实例化对象

请教,用C#写一个复数类!

问题描述 写一个复数类,实现(1)构造函数重载(三种:缺省,实部+虚部,幅角+模)(2)实现+,-,×,/运算,尤其是注意/运算分母不等于零,包含和整数,和浮点数,和复数相乘的情况.(3)定义>,<,==,!=等(4)实现实数到复数的转换(显式,隐式),实现复数到实数的转换(显式,隐式),如果可以的话,如果不可以请显示错误信息.请各位大侠,帮帮忙!!! 解决方案 解决方案二:精华区有一个解决方案三:谢谢过楼上的了,去看了一下,不过都是用VB编的,我以前没有学过VB,不知道用C#怎么编写?解决方

php实现带读写分离功能的MySQL类完整实例_php技巧

本文实例讲述了php实现带读写分离功能的MySQL类.分享给大家供大家参考,具体如下: 概述: 1. 根据sql语句判断是连接读库还是写库 2. 链式调用$this->where()->get() 3. 不同的主机对应不同的实例, 不再多次new 具体代码如下: <?php class DBRWmysql { private static $Instance = null; private $links = array();//链接数组 private $link = null; //当

mysql-求一个Mysql语句 查询出当前周的数据按照天分组

问题描述 求一个Mysql语句 查询出当前周的数据按照天分组 SELECT DATE_FORMAT(uploadTime_beg%Y-%m-%d"") as time SUM(field01) as sumStatus1 SUM(field02) as sumStatus2 SUM(field03) as sumStatus3 SUM(field04) as sumStatus4 SUM(field05) as sumStatus5 FROM health_realdata WHERE

adodc-用ADO控件编的一个简易学生成绩管理器,运行时显示找不到可安装的ISAM,求解决

问题描述 用ADO控件编的一个简易学生成绩管理器,运行时显示找不到可安装的ISAM,求解决 Private Sub Command1_Click() On Err GoTo MyErr If Command1.Caption = "添加" Then Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = &qu

如何编写一个ASP类

前几天大佛写了"ASP设计模式",可能有些初学者或者刚刚接触ASP的朋友不一定完全看得明白,偶就整理了一下编写一个ASP类的方法,大部分是从网上找来的.希望对朋友们有帮助. <ASP设计模式>(作者 我佛山人): 首先ASP的类是由事件和方法(它们就是构成类的成员了)构成的,如果大家还没有接触过,可以先看看下面的说明:在 Class 块中,成员通过相应的声明语句被声明为 Private(私有成员,只能在类内部调用) 或 Public(公有成员,可以在类内外部调用) .被声明