您的位置:

php数据库工具类,php数据库工具类

本文目录一览:

谁给个php操作mysql类并有详细使用说明或例子

下面这个,是针对php5的一个简单数据库封装类,适合学习,其他的如删除、更新等操作,你可以自己加上:

?php

class Mysql{ //首先定义一个类,首写字母大写

public $host;//服务器名,访问修饰符PUBLIC证明$host是一个公共的属情在类的内部外部都可访问,可以被继承

public $user;//用户名,是公共的属性

private $pass;//密码,问修饰符private证明$pass是私有的.只能在类的内部使用且不能被继承.

public $dbname;//数据库名,也是公共的属性.

//__construct声名这是一个造函数,定义一些初始的信息.有三个参数

public function __construct($host,$user,$pass,$dbname){

$this-host = $host;

$this-user = $user;

$this-pass = $pass;

$this-dbname = $dbname;

$link = @mysql_connect($this-host,$this-user,$this-pass)

or die("error");

@mysql_select_db($this-dbname,$link)

or die("error2");

}

//定义数据库的查寻和显示函数

function myQuery($sql){

$result = mysql_query($sql);

if(!$result){

echo "error3";

exit;

}

$num = mysql_num_rows($result);

if($num){

echo "NO".$num;

}

while($row = mysql_fetch_assoc($result)){

echo 'trtd bgcolor="#fffddd"pre'.htmlspecialchars(stripslashes($row['body']))."pre/td/tr";

}

}

}

$rutt = new Mysql('localhost','root','ssss','calvin');//实例化一个类...记住这里的参数是和构造函数的参数一样的...

$rutt-myQuery('select * from calvin_body');//运行数据库查寻并显示的函数..

?

下面这个是针对php5以下版本的数据库封装类,体现了php类的继承,一个许愿版程序的:

?php

/*

* FileName: DatabaseSQL.inc.php

* Author: Terry

* Function: 建立DatabaseSQL对象,实现对数据库的基本操作

* Version : Blue-System v2.0

* CreateDate: 2004-03-10

* Copyright: Blue-Workshop /

*/

// 定义DatabaseSQL对象

Class DatabaseSQL

{

var $CONN = ""; // 连接号

var $HOST = "Localhost"; // 主机名

var $USER = ""; // 用户名

var $PASSWORD = ""; // 密码

// DatabaseSQL类的构造函数

function DatabaseSQL($DBNAME)

{

$user = $this - USER;

$password = $this - PASSWORD;

$host = $this - HOST;

$db = $DBNAME;

// 连接数据库

$conn = mysql_connect($host, $user, $password);

mysql_select_db($db, $conn);

$this - CONN = $conn;

return true;

}

// 定义查询操作

function select($strSQL = "")

{

if ( empty($strSQL) ) return false;

if ( empty($this - CONN) ) return false;

$conn = $this - CONN;

// 发送SQL语句,获得结果

$result = mysql_query($strSQL, $conn);

if ( (!$result) or (empty($result)) ) {

return false;

}

$num = 0;

$data = array();

// 将查询结果放二维数组中

while ( $row = mysql_fetch_array($result) ) {

$data[$num] = $row;

$num++;

}

mysql_free_result($result);

return $data;

}

// 定义插入操作

function insert($strSQL = "")

{

if ( empty($strSQL) ) return false;

if ( empty($this - CONN) ) return false;

$conn = $this - CONN;

// 发送SQL语句,插入新数据

$result = mysql_query($strSQL, $conn);

if ( !result ) return false;

// 获得记录的id号

$result = mysql_insert_id();

return $result;

}

// 定义更新操作

function update($strSQL = "")

{

if ( empty($strSQL) ) return false;

if ( empty($this - CONN) ) return false;

$conn = $this - CONN;

// 发送SQL语句,更新数据库

$result = mysql_query($strSQL, $conn);

return $result;

}

// 定义删除操作

function delete($strSQL = "")

{

if ( empty($strSQL) ) return false;

if ( empty($this - CONN) ) return false;

$conn = $this - CONN;

// 发送SQL语句,删除记录

$result = mysql_query($strSQL, $conn);

return $result;

}

}

?

----------------------------------

?php

/*

* FileName: Wish.inc.php

* Author: Terry

* Function: 建立Wish对象,实现对许愿板进行操作功能

* Version : Blue-System v2.0

* CreateDate: 2004-03-10

* Copyright: Blue-Workshop /

*/

require "config.inc.php";

require "DatabaseSQL.inc.php";

// 定义Wish对象

Class Wish extends DatabaseSQL

{

// 构造函数

function Wish()

{

$DBName = $GLOBALS["dbname"];

$this - DatabaseSQL($DBName);

}

// 添加新愿望(use in wish/save.php?action=add_wish)

function AddWish($name,$receiver,$type,$address,$content,$hide,$addtime)

{

$strSQL = "insert into Wish (Name, Receiver, Type, Address, Content, Hide, AddTime) values ('$name', '$receiver', '$type', '$address', '$content', '$hide', '$addtime')";

$result = $this - insert($strSQL);

return $result;

}

// 修改指定id的愿望内容(use in save.php?action=edit_wish)

function EditWish($wid,$name,$receiver,$type,$address,$content,$hide)

{

$strSQL = "update `Wish` set `Name` = '$name', `Receiver` = '$receiver', `Type` = '$type', `Address` = '$address', `Content` = '$content', `Hide` = '$hide' where `WID` = '$wid' ";

$result = $this - update($strSQL);

return $result;

}

// 愿望列表(use in index.php)

function ListWish($startid,$list_nums)

{

$strSQL = "select * from Wish order by AddTime desc LIMIT $startid,$list_nums";

$result = $this - select($strSQL);

return $result;

}

// 获取指定愿望信息(use in index.php?go=view_wish)

function GetWish($wid)

{

$strSQL = "select * from Wish where WID = '$wid'";

$result = $this - select($strSQL);

return $result;

}

// 更新指定愿望的浏览数(use in index.php?go=view_wish)

function UpdateHit($wid)

{

$strSQL = "update `Wish` set `Hit` = ( `Hit` + 1 ) where `WID` = '$wid'";

$result = $this - update($strSQL);

return $result;

}

// 删除指定愿望信息(use in save.php?action=del_wish)

function DelWish($wid)

{

$strSQL = "delete from Wish where WID = '$wid'";

$result = $this - delete($strSQL);

return $result;

}

}

?

---------------------------------------

?php

/*

* FileName: config.inc.php

* Author: Terry

* Function: 系统基本设置

* Version : B.S - Wish v1.0

* CreateDate: 2004-03-19

* Copyright: Blue-Workshop

* Tec-Support: /

* Attention: 请保留版权信息,谢谢 ^_^

*/

// 数据库信息

$dbhost = "Localhost"; /* 主机名 */

$dbuser = ""; /* 数据库用户 */

$dbpwd = ""; /* 数据库密码 */

$dbname = "BS_Wish"; /* 数据库名 */

// 管理员信息

$adminname = "blue"; /* 初始化管理员 */

$adminpwd = "blue"; /* 初始化管理密码 */

?

PHP访问MYSQL数据库封装类(附函数说明)

复制代码

代码如下:

?php

/*

MYSQL

数据库访问封装类

MYSQL

数据访问方式,php4支持以mysql_开头的过程访问方式,php5开始支持以mysqli_开头的过程和mysqli面向对象

访问方式,本封装类以mysql_封装

数据访问的一般流程:

1,连接数据库

mysql_connect

or

mysql_pconnect

2,选择数据库

mysql_select_db

3,执行SQL查询

mysql_query

4,处理返回的数据

mysql_fetch_array

mysql_num_rows

mysql_fetch_assoc

mysql_fetch_row

etc

*/

class

db_mysql

{

var

$querynum

=

;

//当前页面进程查询数据库的次数

var

$dblink

;

//数据库连接资源

//链接数据库

function

connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0

,

$halt=true)

{

$func

=

empty($pconnect)

?

'mysql_connect'

:

'mysql_pconnect'

;

$this-dblink

=

@$func($dbhost,$dbuser,$dbpw)

;

if

($halt

!$this-dblink)

{

$this-halt("无法链接数据库!");

}

//设置查询字符集

mysql_query("SET

character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this-dblink)

;

//选择数据库

$dbname

@mysql_select_db($dbname,$this-dblink)

;

}

//选择数据库

function

select_db($dbname)

{

return

mysql_select_db($dbname,$this-dblink);

}

//执行SQL查询

function

query($sql)

{

$this-querynum++

;

return

mysql_query($sql,$this-dblink)

;

}

//返回最近一次与连接句柄关联的INSERT,UPDATE

或DELETE

查询所影响的记录行数

function

affected_rows()

{

return

mysql_affected_rows($this-dblink)

;

}

//取得结果集中行的数目,只对select查询的结果集有效

function

num_rows($result)

{

return

mysql_num_rows($result)

;

}

//获得单格的查询结果

function

result($result,$row=0)

{

return

mysql_result($result,$row)

;

}

//取得上一步

INSERT

操作产生的

ID,只对表有AUTO_INCREMENT

ID的操作有效

function

insert_id()

{

return

($id

=

mysql_insert_id($this-dblink))

=

?

$id

:

$this-result($this-query("SELECT

last_insert_id()"),

0);

}

//从结果集提取当前行,以数字为key表示的关联数组形式返回

function

fetch_row($result)

{

return

mysql_fetch_row($result)

;

}

//从结果集提取当前行,以字段名为key表示的关联数组形式返回

function

fetch_assoc($result)

{

return

mysql_fetch_assoc($result);

}

//从结果集提取当前行,以字段名和数字为key表示的关联数组形式返回

function

fetch_array($result)

{

return

mysql_fetch_array($result);

}

//关闭链接

function

close()

{

return

mysql_close($this-dblink)

;

}

//输出简单的错误html提示信息并终止程序

function

halt($msg)

{

$message

=

"html\nhead\n"

;

$message

.=

"meta

content='text/html;charset=gb2312'\n"

;

$message

.=

"/head\n"

;

$message

.=

"body\n"

;

$message

.=

"数据库出错:".htmlspecialchars($msg)."\n"

;

$message

.=

"/body\n"

;

$message

.=

"/html"

;

echo

$message

;

exit

;

}

}

?

PHP网站怎么连接到数据库?

常规方式

常规方式就是按部就班的读取文件了。其余的话和上述方案一致。

// 读取配置文件内容

$handle = fopen("filepath", "r");            $content = fread($handle, filesize("filepath"));123

PHP解析XML

上述两种读取文件,其实都是为了PHP解析XML来做准备的。关于PHP解析XML的方式的博客有很多。方式也有很多,像simplexml,XMLReader,DOM啦等等。但是对于比较小型的xml配置文件,simplexml就足够了。

配置文件

?xml version="1.0" encoding="UTF-8" ?mysql

!-- 为防止出现意外,请按照此标准顺序书写.其实也无所谓了 --

hostlocalhost/host

userroot/user

password123456/password

dbtest/db

port3306/port/mysql12345678910

解析

?php/**

* 作为解析XML配置文件必备工具

*/class XMLUtil {

public static $dbconfigpath = "./db.config.xml";    public static function getDBConfiguration() {

$dbconfig = array ();        try {            // 读取配置文件内容

$handle = fopen(self::$dbconfigpath, "r");            $content = fread($handle, filesize(self::$dbconfigpath));            // 获取xml文档根节点,进而获取相关的数据库信息

$mysql = simplexml_load_string($content);            // 将获取到的xml节点信息赋值给关联数组,方便接下来的方法调用

$dbconfig['host'] = $mysql-host;            $dbconfig['user'] = $mysql-user;            $dbconfig['password'] = $mysql-password;            $dbconfig['db'] = $mysql-db;            $dbconfig['port'] = $mysql-port;            // 将配置信息以关联数组的形式返回

return $dbconfig;

} catch ( Exception $e ) {            throw new RuntimeException ( "mark读取数据库配置文件信息出错!/markbr /" );

}        return $dbconfig;

}

}1234567891011121314151617181920212223242526272829

数据库连接池

对于PHP程序而言,优化永无止境。而数据库连接池就在一定程度上起到了优化的作用。其使得对用户的每一个请求而言,无需每次都像数据库申请链接资源。而是通过已存在的数据库连接池中的链接来返回,从时间上,效率上,都是一个大大的提升。

于是,这里简单的模拟了一下数据库连接池的实现。核心在于维护一个“池”。

从池子中取,用毕,归还给池子。

?php/**x

*  PHP中的数据库 工具类设计

*  郭璞

*  2016年12月23日

*

**/class DbHelper {    private $dbconfig;    private $dbpool;    public $poolsize;    public function __construct($poolsize = 20) {        if (! file_exists ( "./utils.php" )) {            throw new RuntimeException ( "markutils.php文件丢失,无法进行配置文件的初始化操作!/markbr /" );

}else {

require './utils.php';

}        // 初始化 配置文件信息

$this-dbconfig = XMLUtil::getDBConfiguration ();        // 准备好数据库连接池“伪队列”

$this-poolsize = $poolsize;

$this-dbpool = array ();        for($index = 1; $index = $this-poolsize; $index ++) {

$conn = mysqli_connect ( $this-dbconfig ['host'], $this-dbconfig ['user'], $this-dbconfig ['password'], $this-dbconfig ['db'] ) or die ( "mark连接数据库失败!/markbr /" );

array_push ( $this-dbpool, $conn );

}

}    /**

* 从数据库连接池中获取一个数据库链接资源

*

* @throws ErrorException

* @return mixed

*/

public function getConn() {        if (count ( $this-dbpool ) = 0) {            throw new ErrorException ( "mark数据库连接池中已无链接资源,请稍后重试!/mark" );

} else {            return array_pop ( $this-dbpool );

}

}    /**

* 将用完的数据库链接资源放回到数据库连接池

*

* @param unknown $conn

* @throws ErrorException

*/

public function release($conn) {        if (count ( $this-dbpool ) = $this-poolsize) {            throw new ErrorException ( "mark数据库连接池已满/markbr /" );

} else {

array_push ( $this-dbpool, $conn );

}

}

}