公司要用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连接的工具类这样 这个也可以更改成数据库的通用类 有空在与大家交流