一、类介绍
说实话,网络上的PHP数据库类实在太多了,多的都无法用语言描述。像开源系统的类,每家都不一样,各有各的区别。现在我为大家介绍的是一款常用的,在项目中用到的类。这款类,包括如下内容:
1、query 查询 2、get_one 获取一条数据 3、get_all 获取全部数据 4、insert 插入数据 5、update 更新数据 6、delete 删除数据 7、fetch_array 返回结果集 8、num_rows 获取结果条数 9、free_result 释放结果集 10、insert_id 获取最后插入的id 11、close 关闭数据库连接 12、halt 错误提示 13、write_log 写入日志文件 14、microtime_float 获取毫秒数 15、db_affected_rows 根据insert,update,delete执行结果取得影响行数 16、mysql_server 取得 MySQL 服务器信息
二、图片展示、演示及下载
三、预备内容
首先,我们举的例子是把这些内容放在根目录下,在实际过程中你可以将它们放到自己定义的目录下。
先把 MySQL.class.php 和 config.db.php 放到根目录下。自然 MySQL.class.php 是 mysql 的数据类,而config.db.php是写在 MySQL.class.php 的一个配置文件,为了配置方便,所以把它独立出来了,使用的时候注意下就可以。类呢,比较长,就不放出来了,下载下来用就可以。我们在 config.db.php 做一些配置。
config.db.php
<?php $db_config["hostname"] = "localhost"; //服务器地址 $db_config["username"] = "root"; //数据库用户名 $db_config["password"] = "root"; //数据库密码 $db_config["database"] = "ijqueryphp"; //数据库名称 $db_config["charset"] = "utf8";//数据库编码 $db_config["pconnect"] = 1;//1开启持久连接,0不开启 $db_config["log"] = 1;//1开启日志,0不开启 $db_config["logfilepath"] = './';//开启日志的位置,可以自定义,默认会在该位置下生成 dblog.txt ?>
再把 ijqueryphp数据库 的测试数据库放置在这里,以备及时使用
DROP TABLE IF EXISTS `php_users`; CREATE TABLE `php_users` ( `user_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `user_name` varchar(60) NOT NULL DEFAULT '', `user_phone` varchar(20) DEFAULT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; INSERT INTO `php_users` VALUES (1,'hongwei1','15947270499'); INSERT INTO `php_users` VALUES (2,'hongwei2','18903467858');
四、类的使用方法
首先引用并实例化
//引用 require_once 'mysql.class.php'; $db = new DB();
1、获取记录条数 num_rows
请看 http://www.ijquery.cn/phpclass/mysql/num_rows.php
$sql = "select * from php_users"; $query = $db ->query($sql); $num = $db ->num_rows($query); echo $num;
返回结果是 2 ;
2、fetch_array 返回结果集
请看 http://www.ijquery.cn/phpclass/mysql/fetch_array.php
$sql = "select * from php_users"; $query = $db ->query($sql); $results = $db->fetch_array($query); print_r($results);
返回的结果是:
Array ( [user_id] => 1 [user_name] => hongwei1 [user_phone] => 15947270499 )
3、get_one 查询一条语句
请看 http://www.ijquery.cn/phpclass/mysql/get_one.php
$sql_one = "select * from php_users where user_id =2"; $result = $db->get_one($sql_one); print_r($result) ;
返回的结果是:
Array ( [user_id] => 2 [user_name] => hongwei2 [user_phone] => 18903467858 )
4、get_all 查询数据表中的全部语句
请看 http://www.ijquery.cn/phpclass/mysql/get_all.php
$sql = "select * from php_users"; $result = $db->get_all($sql); print_r($result);
返回的结果是:
Array ( [0] => Array ( [user_id] => 1 [user_name] => hongwei1 [user_phone] => 15947270499 ) [1] => Array ( [user_id] => 2 [user_name] => hongwei2 [user_phone] => 18903467858 ) )
5、insert 插入一条数据进入数据库
$arr= array("user_name"=>"hongwei3","user_phone"=>"13934217825"); $db->insert('php_users', $arr);
返回的结果是,下边红框内便是新增加的
6、insert_id 获取最后插入的id
$arr= array("user_name"=>"hongwei4","user_phone"=>"13934217826"); $db->insert('php_users', $arr); $a = $db->insert_id(); echo $a;
返回的结果是22 .
7、update 更新数据进入数据库
$arr_update =array("user_name"=>"hongwei33","user_phone" =>"13934217828"); $condition = "user_name='hongwei3'"; $db->update('php_users', $arr_update,$condition);
返回的结果如图:
8、delete 删除数据
$condition = " user_name='hongwei33'"; $db->delete("php_users",$condition);
返回的结果如下图,已经没有hongwei33的全部数据了:
9、db_affected_rows 根据insert,update,delete执行结果取得影响行数
请看 http://www.ijquery.cn/phpclass/mysql/db_affected_rows.php
$sql = "select * from php_users"; $db->get_all($sql); $result = $db->db_affected_rows(); echo $result;
10、mysql_server 取得 MySQL 服务器信息
http://www.ijquery.cn/phpclass/mysql/mysql_server.php
//MySQL 服务器信息 $info1=$db->mysql_server(1); echo "MySQL 服务器信息:".$info1."<br/>"; //取得 MySQL 主机信息 $info2=$db->mysql_server(2); echo "MySQL 主机信息:".$info2."<br/>"; //取得 MySQL 客户端信息 $info3=$db->mysql_server(3); echo "MySQL 客户端信息:".$info3."<br/>"; //取得 MySQL 协议信息 $info4=$db->mysql_server(4); echo "MySQL 协议信息:".$info4."<br/>"; //取得mysql 版本信息 $info5=$db->mysql_server(5); echo "MySQL 版本信息:".$info5."<br/>";
查看结果就是:
五、查看记录
上边我们提到了会在根目录下生成 dblog.txt 文件,如下图,会有我们操作的全部记录。