好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php数据库连接类 - php类库

php数据库连接类

本文章提供了数据库连接实例,主要是讲php mysql数据相关操作,有需要的朋友可以使用看看,实例代码如下:

<?php   class  mysql {   private   $db_host ;  //主机地址    private   $db_user ;  //用户名    private   $db_pass ;  //连接密码    private   $db_name ;  //名称    private   $db_charset ;  //编码    private   $conn ;   public   $debug =false; //调试开关,默认关闭    private   $query_id ;  //用于判断sql语句是否执行成功    private   $result ;  //结果集    private   $num_rows ;  //结果集中行的数目,仅对select有效    private   $insert_id ;  //上一步 insert 操作产生的 id    // 构造/析构函数    function  __construct ( $db_host , $db_user , $db_pass , $db_name , $db_charset , $conn ) {   $this ->db_host =  $db_host  ;   $this ->db_user =  $db_user  ;   $this ->db_pass =  $db_pass  ;   $this ->db_name =  $db_name  ;   $this ->db_charset =  $db_charset  ;   $this ->conn =  $conn  ;   $this ->connect();   }   function  __destruct () {   @mysql_close( $this ->conn);   }   // 连接/选择数据库    public   function  connect () {   if  ( $this ->conn ==  'pconn' ) {   @ $this ->conn = mysql_pconnect( $this ->db_host, $this ->db_user, $this ->db_pass);   }  else  {   @ $this ->conn = mysql_connect( $this ->db_host, $this ->db_user, $this ->db_pass);   }   if  (! $this ->conn) {   $this ->show_error( '数据库-连接失败:用户名或密码错误!' );   }   if  (!@mysql_select_db( $this ->db_name, $this ->conn)) {   $this ->show_error( "数据库-选择失败:数据库 $this->db_name 不可用" );   }   mysql_query( "set names $this->db_charset" );   return   $this ->conn;   }   // query方法    public   function  query ( $sql ) {   if  ( $this ->query_id)  $this ->free_result();   $this ->query_id = @mysql_query( $sql , $this ->conn);   if  (! $this ->query_id)  $this ->show_error( "sql语句 <b>" $sql "</b> 执行时遇到错误" );   return   $this ->query_id;   }   // 显示详细错误信息    public   function  show_error ( $msg ) {   if ( $this ->debug){   $errinfo  = mysql_error();   echo   "错误:$msg <br/> 返回:$errinfo<p>" ;   } else {   echo   '<p>出现错误!<p>' ;   }   }   // 获得query执行成功与否的信息    public   function  get_query_info( $info ){   if  ( $this ->query_id) {   echo   $info ;   }   }   // 查询所有    public   function  findall ( $table_name ) {   $this ->query( "select * from $table_name" );   }   // mysql_fetch_array    public   function  fetch_array () {   if  ( $this ->query_id) {   $this ->result = mysql_fetch_array( $this ->query_id);   return   $this ->result;   }   }   // ......    public   function  fetch_assoc () {   if  ( $this ->query_id) {   $this ->result = mysql_fetch_assoc( $this ->query_id);   return   $this ->result;   }   }   public   function  fetch_row () {   if  ( $this ->query_id) {   $this ->result = mysql_fetch_row( $this ->query_id);   return   $this ->result;   }   }   public   function  fetch_object () {   if  ( $this ->query_id) {   $this ->result = mysql_fetch_object( $this ->query_id);   return   $this ->result;   }   }   // 获取 num_rows    public   function  num_rows () {   if  ( $this ->query_id) {   $this ->num_rows = mysql_num_rows( $this ->query_id);   return   $this ->num_rows;   }   }   // 获取 insert_id    public   function  insert_id () {   return   $this ->insert_id = mysql_insert_id();   }   // 显示共有多少张表    public   function  show_tables () {   $this ->query( "show tables" );   if  ( $this ->query_id) {   echo   "数据库 $this->db_name 共有 " . $this ->num_rows( $this ->query_id). " 张表<br/>" ;   $i  = 1;   while  ( $row  =  $this ->fetch_array( $this ->query_id)){   echo   "$i -- $row[0]<br/>" ;   $i  ++;   }   }   }   // 显示共有多少个数据库    public   function  show_dbs(){   $this ->query( "show databases" );   if  ( $this ->query_id) {   echo   "共有数据库 " . $this ->num_rows( $this ->query_id). " 个<br/>" ;   $i  = 1;   while  ( $this ->row =  $this ->fetch_array( $this ->query_id)){   echo   "$i -- " . $this ->row[database]. "<br />" ;   $i  ++;   }   }   }   // 删除数据库:返回删除结果    public   function  drop_db ( $db_name = '' ) {   if  ( $db_name  ==  '' ) {   $db_name  =  $this ->db_name; //默认删除当前数据库    $this ->query( "drop database $db_name" );   } else  {   $this ->query( "drop database $db_name" );   }   if  ( $this ->query_id) {   return   "数据库 $db_name 删除成功" ;   } else  {   $this ->show_error( "数据库 $db_name 删除失败" );   }   }   // 删除数据表:返回删除结果    public   function  drop_table ( $table_name ) {   $this ->query( "drop table $table_name" );   if  ( $this ->query_id) {   return   "数据表 $table_name 删除成功" ;   } else  {   $this ->show_error( "数据表 $table_name 删除失败" );   }   }   // 创建数据库    public   function  create_db ( $db_name ) {   $this ->query( "create database $db_name" );   if ( $this ->query_id){   return   "数据库 $db_name 创建成功" ;   } else  {   $this ->show_error( "数据库 $db_name 创建失败" );   }  //开源代码phpfensi.com   }   // 获取数据库版本    public   function  get_info(){   echo  mysql_get_server_info();   }   // 释放内存    public   function  free_result () {   if  ( @mysql_free_result( $this ->query_id) )   unset ( $this ->result);   $this ->query_id = 0;   }   }  // end class    ?>  

下面提供一款自动选择数据库远程或本地连接代码:

<?php   // 包含mysql操作类    include_once   'mysql.class.php' ;   // 本地mysql数据    $mysql_local_data  =  array ( 'db_host' => 'localhost' ,   'db_user' => 'root' ,   'db_pass' => 'root' ,   'db_name' => 'test' );   // 远程mysql数据    $mysql_remote_data  =  array ( 'db_host' => '61.183.41.178' ,   'db_user' => 'xxx' ,   'db_pass' => 'xxx' ,   'db_name' => 'xxx' );   // 公用数据    $tb_prefix  =  'php95_' ;   $db_charset  =  'utf-8' ;   //本地连接成功则实例化本地mysql类,否则连接远程数据库并实例化mysql类    if  (@mysql_connect( $mysql_local_data [db_host],  $mysql_local_data [db_user],  $mysql_local_data [db_pass]))   $db  =  new  mysql( $db_host ,  $mysql_local_data [db_user],  $mysql_local_data [db_pass],  $mysql_local_data [db_name],  $db_charset ,  $conn );   else    $db  =  new  mysql( $mysql_remote_data [db_host],  $mysql_remote_data [db_user],  $mysql_remote_data [db_pass],  $mysql_remote_data [db_name],  $db_charset ,  $conn );   $db ->show_tables();  //测试:显示当前数据库下的所有表名    ?> 

假设我们要在test.php文件中操作虚拟主机的数据库,则首先要在本地调试,那么必然要连接本地、远程两个不同的数据库,问题:怎么让test.php自动识别当下该连接本地还是远程数据库呢?

查看更多关于php数据库连接类 - php类库的详细内容...

  阅读:34次