`
wangyalei
  • 浏览: 51968 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

php学习笔记(数据库连接工具类)

    博客分类:
  • PHP
阅读更多

公司要用php,最近学了php,自己检讨、总结一下自己的学习过程.

程序最基本的组成就是数据, 先看总结一下连接数据库,虽然网上也有不少这样的资料,但我不如自己总结一下,这样更能加深理解。php oop编程 我也是根据java 的思想来学习。 废话不多说。看下面的链接数据库的类,可能写的不好,大家可以给点意见,共同学习。

 

 

1:现在根目录下创建一个名为——> config.php的文件 用来保存 数据库的基本配置信息

 

<?php
/*
 * Created on 2010-8-1
 *
 * <B>数据库的基本配置信息</B>
 * @author wangyalei
 *
 */

    // 配置文件路径
    define("WEB_ROOT",strtr(dirname(__FILE__),"\\","/")."/");
    //mysql database address
	define('DB_HOST','localhost');
	//mysql database user
	define('DB_USER','root');
	//database password
	define('DB_PASSWD','');
	//database name
	define('DB_NAME','test');

?>

 

 以上用了一点关于处理字符串的用法 strtr (和 strstr的写法很像,但实现的功能可不一样)可以看文档,以后我也会整理一些关于字符串处理的文章

 

 

2: 在lib文件夹中写mysql.class.php

 

<?php
error_reporting(E_ERROR); // 一般 开发的时候不设置这个属性 关闭所有错误信息
/***********
 *<b>一个mysql数据库连接类<b>
 *<p>
 * 采用常见的单例模式
 * @version php5
 * @author wangyalei
 */

 // 引发数据库的基本配置文件
require_once "../config.php";


 final class mysql {



   private $con;// 数据库的链接对象

   private $result;// 数据结果集

   private static $Instatnce = null; // 内部的实力对象

   //一个私有的构造
   private function __construct() {

		//判断是否支持mysql数据库
		if(!function_exists("mysql_connect")){
			echo "不支持mysql数据库";
			 exit;
		}

		// 连接数据库

		if(!$this->con = mysql_connect(DB_HOST,DB_USER,DB_PASSWD)){

			echo "连接数据库失败";
			exit;
		}

        // 设置连接数据库的名称
        @mysql_select_db(DB_NAME,$this->con) or die("没有找到数据库");

    }

   /*******
    * 实例化链接对象的实例对象
    * @return object 连接数数据库的实例对象
    */
    public static function getInstance(){

    	// 判断是否实力对象已经存在

		 if(self::$Instatnce==null){

		 	self::$Instatnce = new MySql();
		 }

 			return self::$Instatnce;

    }



   /**********
    * 执行sql 语句
    * @param string $sql 要执行的sql
    * @return  bool true and false
    *
    */
   public function query($sql){

	   $this->result = mysql_query($sql,$this->con);
	   if(!$this->result){

	   	  echo "执行sql语句出错了";
	   	  exit;

	   }else{

	   	  return $this->result;
	   }

   }


    /*********
    * 从结果集中取得一行作为关联数组/数字索引数组
    * @param datatype paramname
    * @return $query 返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
    */
   public function fetch_array($query){

   	    return mysql_fetch_array($query);
   }


   /*******
   *
   * 取得查询时返回的影响函数
   * @param string $query 结果集
   * 0@return int 返回结果集中行的数目。此命令仅对 SELECT 语句有效
   *
   */
    public function row_num($query){

       return  mysql_num_rows($query);
    }



   /*******
   *
   * 取得查询时返回的影响函数
   * @param string $query 结果集
   * @return int 执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1。
   *
   */
    public function affected_fields(){

    	return mysql_affected_rows();

    }



    /**
	 * 取得上一步 INSERT 操作产生的 ID
	 *
	 * @return integer
	 */
	function insert_id() {
		return mysql_insert_id($this->conn);
	}



    /*******
     * 关闭数据库的连接
     */
    public function close(){

		mysql_close($this->con);

    }


}
?>

 

一个关于mysql连接的工具类这样 这个也可以更改成数据库的通用类 有空在与大家交流

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics