首页 > 语言 > PHP > 正文

php连接mysql数据库操作类

2024-09-04 11:44:18
字体:
来源:转载
供稿:网友

这是一款比较全的mysql操作类,昨天写了一个简单的连接mysql数据库代码,相对于这个来说,那个是最简单的了,这个是一款包括数据查询,更新,删除,等操作,实例代码如下:

  1. class mysql{ 
  2.   private $db_host//数据库主机 
  3.   private $db_user//数据库用户名 
  4.   private $db_pwd//数据库密码 
  5.   private $db_database//数据库名 
  6.   private $conn//数据库连接标识; 
  7.   private $sql//sql执行的语句 
  8.   private $result//query的资源标识符 
  9.   private $coding//数据库编码,gbk,utf8,gb2312 
  10.   private $show_error = true; //本地调试使用,打印错误 
  11.   /** 
  12.    * 构造函数 
  13.    * 
  14.    * @access public 
  15.    * @parameter string $db_host   数据库主机 
  16.    * @parameter string $db_user   数据库用户名 
  17.    * @parameter string $db_pwd    数据库密码 
  18.    * @parameter string $db_database   数据库名 
  19.    * @parameter string $coding    编码 
  20.    * @return void 
  21.    */ 
  22.   public function __construct($db_host$db_user$db_pwd$db_database$coding){ 
  23.    $this->db_host = $db_host
  24.    $this->db_user = $db_user
  25.    $this->db_pwd =  $db_pwd
  26.    $this->db_database = $db_database
  27.    $this->coding = $coding
  28.    $this->connect(); 
  29.   } 
  30.   /** 
  31.    * 链接数据库 
  32.    * 
  33.    * @access private 
  34.    * @return void 
  35.    */ 
  36.   private function connect(){ 
  37.    $this->conn = @mysql_connect($this->db_host,$this->db_user,$this->db_pwd); 
  38.    if(!$this->conn){ 
  39.     //show_error开启时,打印错误 
  40.     if($this->show_error){ 
  41.      $this->show_error('错误提示:链接数据库失败!'); 
  42.     } 
  43.    } 
  44.    if(!@mysql_select_db($this->db_database, $this->conn)){ 
  45.     //打开数据库失败 
  46.     if($this->show_error){ 
  47.      $this->show_error('错误提示:打开数据库失败!'); 
  48.     } 
  49.    } 
  50.    if(!@mysql_query("set names $this->coding")){ 
  51.     //设置编码失败 
  52.     if($this->show_error){ 
  53.      $this->show_error('错误提示:设置编码失败!'); 
  54.     } 
  55.    } 
  56.   } 
  57.   /** 
  58.    * 可执行查询添加修改删除等任何sql语句 
  59.    * 
  60.    * @access public 
  61.    * @parameter string $sql   sql语句 
  62.    * @return resource  资源标识符 
  63.    */ 
  64.   public function query($sql){ 
  65.    $this->sql = $sql
  66.    $result = mysql_query($this->sql, $this->conn); 
  67.    if(!$result){ 
  68.     //query执行失败,打印错误 
  69.     $this->show_error("错误的sql语句:"$this->sql); 
  70.    }else
  71.     //返回资源标识符 
  72.     return $this->result = $result
  73.    } 
  74.   } 
  75.   /** 
  76.    * 查询mysql服务器中所有的数据库 
  77.    * 
  78.    * @access public 
  79.    * @return void 
  80.    */ 
  81.   public function show_databases(){ 
  82.    $this->query("show databases"); 
  83.    //打印数据库的总数 
  84.    echo "现有数据库:" . mysql_num_rows($this->result); 
  85.    echo "<br />"
  86.    $i = 1; 
  87.    //循环输出每个数据库的名称 
  88.    while($row=mysql_fetch_array($this->result)){ 
  89.     echo "$i $row[database]" . "<br />"
  90.     $i++; 
  91.    } 
  92.   } 
  93.   /** 
  94.    * 查询数据库下所有表名 
  95.    * 
  96.    * @access public 
  97.    * @return void 
  98.    */ 
  99.   public function show_tables(){ 
  100.    $this->query("show tables"); 
  101.    //打印表的总数 
  102.    echo "数据库{$this->db_database}共有" . mysql_num_rows($this->result) . "张表:"
  103.    echo "<br />"
  104.    //构造数组下标,循环出数据库所有表名 
  105.    $column_name = "tables_in_" . $this->db_database; 
  106.    $i = 1; 
  107.    //循环输出每个表的名称 
  108.    while($row=mysql_fetch_array($this->result)){ 
  109.     echo "$i $row[$column_name]" . "<br />"
  110.     $i++; 
  111.    } 
  112.   } 
  113.   /** 
  114.    * 取得记录集,获取数组-索引和关联 
  115.    * 
  116.     * @access public 
  117.    * @return void 
  118.    */ 
  119.   public function fetch_array(){ 
  120.    return mysql_fetch_array($this->result); 
  121.   } 
  122.   /** 
  123.    * 简化select查询语句 
  124.    * 
  125.    * @access public 
  126.    * @parameter string $table  表名 
  127.    * @parameter string $field  字段名 
  128.    * @return resource 
  129.    */ 
  130.   public function findall($table$field = '*') { 
  131.    return $this->query("select $field from $table"); 
  132.   } 
  133.   /** 
  134.    * 简化delete查询语句 
  135.    * 
  136.    * @access public 
  137.    * @parameter string $table    表名 
  138.    * @parameter string $condition  查询的条件 
  139.    * @return resource 
  140.    */ 
  141.   public function delete($table$condition) { 
  142.    return $this->query("delete from $table where $condition"); 
  143.   } 
  144.   /** 
  145.    * 简化insert插入语句 
  146.    * 
  147.    * @access public 
  148.    * @parameter string $table  表名 
  149.    * @parameter string $field  字段名 
  150.    * @parameter string $value  插入值 
  151.    * @return resource 
  152.    */ 
  153.   public function insert($table$field$value) { 
  154.    return $this->query("insert into $table ($field) values ('$value')"); 
  155.   } 
  156.   /** 
  157.    * 简化update插入语句 
  158.    * 
  159.    * @access public 
  160.    * @parameter string $table      表名 
  161.    * @parameter string $update_content  更新的内容 
  162.    * @parameter string $condition    条件 
  163.    * @return resource 
  164.    */ 
  165.   public function update($table$update_content$condition) { 
  166.    return $this->query("update $table set $update_content where $condition"); 
  167.   } 
  168.   /** 
  169.    * 取得上一步 insert 操作产生的 id 
  170.    * 
  171.    * @access public 
  172.    * @return integer 
  173.    */ 
  174.   public function insert_id() { 
  175.    return mysql_insert_id(); 
  176.   } 
  177.   /** 
  178.    * 计算结果集条数 
  179.    * 
  180.    * @access public 
  181.    * @return integer 
  182.    */ 
  183.   public function num_rows() { 
  184.    return mysql_num_rows($this->result); 
  185.   } 
  186.   /** 
  187.    * 查询字段数量和字段信息 
  188.    * 
  189.    * @access public 
  190.    * @parameter string $table  表名 
  191.    * @return void 
  192.    */ 
  193.   public function num_fields($table) { 
  194.    $this->query("select * from $table"); 
  195.    echo "<br />"
  196.    //打印字段数 
  197.    echo "字段数:" . $total = mysql_num_fields($this->result); 
  198.    echo "<pre>"
  199.    //mysql_fetch_field() 函数从结果集中取得列信息并作为对象返回。 
  200.    for ($i = 0; $i < $total$i++) { 
  201.     print_r(mysql_fetch_field($this->result, $i)); 
  202.    } 
  203.    echo "</pre>"
  204.    echo "<br />"
  205.   } 
  206.   /** 
  207.    * 输出sql语句错误信息 
  208.    * 
  209.    * @access public 
  210.    * @parameter string $message 提示信息 
  211.    * @return void 
  212.    */ 
  213.   public function show_error($message='',$sql=''){ 
  214.    echo "<fieldset>"
  215.    echo "<legend>错误信息提示:</legend><br />"
  216.    echo "<div style='font-size:14px; clear:both; font-family:verdana, arial, helvetica, sans-serif;'>"
  217.    //打印错误原因 
  218.    echo "错误原因:" . mysql_error() . "<br /><br />"
  219.    //打印错误信息 
  220.    //mysql_error() 函数返回上一个 mysql 操作产生的文本错误信息。 
  221.    echo "<div style='height:20px; background:#ff0000; border:1px #ff0000 solid'>"
  222.    echo "<font color='white'>" . $message . "</font>"
  223.    echo "</div>"
  224.    //打印错误sql语句 
  225.    echo "<font color='red'><pre>" . $sql . "</pre></font>"
  226.    echo "</div>";//开源代码Vevb.com 
  227.    echo "</fieldset>"
  228.   } 
  229.  } 
  230. //使用方法 
  231. $mysql = new mysql($dbhost$dbuser$dbpwd$dbname$coding);

上一篇:mysql 分页类

下一篇:mysql数据库连接类

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表