当前位置: 首页 > 图文教程 > 网络编程 > PHP > php mysql数据库操作类

PHP
php 远程图片保存到本地的函数类
php 破解防盗链图片函数
快速开发一个PHP扩展图文教程
PHP6 mysql连接方式说明
php 进度条实现代码
php discuz 主题表和回帖表的设计
php 无限级缓存的类的扩展
php adodb操作mysql数据库
php FPDF类库应用实现代码
sourcesafe管理phpproj文件的补充说明(downmoon)
AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
php一句话cmdshell新型 (非一句话木马)
php 木马的分析(加密破解)
PHP 数组入门教程小结
php 方便水印和缩略图的图形类
PHP加速 eAccelerator配置和使用指南
PHP 组件化编程技巧
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
两个强悍的php 图像处理类1
PHP 数据库 常见问题小结

PHP 中的 php mysql数据库操作类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 54 ::
收藏到网摘: n/a

mysql数据库 DB类 ,方便学习php的朋友,用类方便扩展,不建议初级用户,可以等熟悉了mysql的数据库操作函数以后再用,要不以后函数都记乱了
复制代码 代码如下:

<?php
/*
* mysql数据库 DB类
* @package db
* @author yytcpt(无影)
* @version 2008-03-27
* @copyrigth http://www.d5s.cn/
*/
class db {
var $connection_id = "";
var $pconnect = 0;
var $shutdown_queries = array();
var $queries = array();
var $query_id = "";
var $query_count = 0;
var $record_row = array();
var $failed = 0;
var $halt = "";
var $query_log = array();
function connect($db_config){
if ($this->pconnect){
$this->connection_id = mysql_pconnect($db_config["hostname"], $db_config["username"], $db_config["password"]);
}else{
$this->connection_id = mysql_connect($db_config["hostname"], $db_config["username"], $db_config["password"]);
}
if ( ! $this->connection_id ){
$this->halt("Can not connect MySQL Server");
}
if ( ! @mysql_select_db($db_config["database"], $this->connection_id) ){
$this->halt("Can not connect MySQL Database");
}
if ($db_config["charset"]) {
@mysql_unbuffered_query("SET NAMES '".$db_config["charset"]."'");
}
return true;
}
//发送SQL 查询,并返回结果集
function query($query_id, $query_type='mysql_query'){
$this->query_id = $query_type($query_id, $this->connection_id);
$this->queries[] = $query_id;
if (! $this->query_id ) {
$this->halt("查询失败:\n$query_id");
}
$this->query_count++;
$this->query_log[] = $str;
return $this->query_id;
}
//发送SQL 查询,并不获取和缓存结果的行
function query_unbuffered($sql=""){
return $this->query($sql, 'mysql_unbuffered_query');
}
//从结果集中取得一行作为关联数组
function fetch_array($sql = ""){
if ($sql == "") $sql = $this->query_id;
$this->record_row = @mysql_fetch_array($sql, MYSQL_ASSOC);
return $this->record_row;
}
function shutdown_query($query_id = ""){
$this->shutdown_queries[] = $query_id;
}
//取得结果集中行的数目,仅对 INSERT,UPDATE 或者 DELETE
function affected_rows() {
return @mysql_affected_rows($this->connection_id);
}
//取得结果集中行的数目,仅对 SELECT 语句有效
function num_rows($query_id="") {
if ($query_id == "") $query_id = $this->query_id;
return @mysql_num_rows($query_id);
}
//返回上一个 MySQL 操作中的错误信息的数字编码
function get_errno(){
$this->errno = @mysql_errno($this->connection_id);
return $this->errno;
}
//取得上一步 INSERT 操作产生的 ID
function insert_id(){
return @mysql_insert_id($this->connection_id);
}
//得到查询次数
function query_count() {
return $this->query_count;
}
//释放结果内存
function free_result($query_id=""){
if ($query_id == "") $query_id = $this->query_id;
@mysql_free_result($query_id);
}
//关闭 MySQL 连接
function close_db(){
if ( $this->connection_id ) return @mysql_close( $this->connection_id );
}
//列出 MySQL 数据库中的表
function get_table_names(){
global $db_config;
$result = mysql_list_tables($db_config["database"]);
$num_tables = @mysql_numrows($result);
for ($i = 0; $i < $num_tables; $i++) {
$tables[] = mysql_tablename($result, $i);
}
mysql_free_result($result);
return $tables;
}
//从结果集中取得列信息并作为对象返回,取得所有字段
function get_result_fields($query_id=""){
if ($query_id == "") $query_id = $this->query_id;
while ($field = mysql_fetch_field($query_id)) {
$fields[] = $field;
}
return $fields;
}
//错误提示
function halt($the_error=""){
$message = $the_error."<br/>\r\n";
$message.= $this->get_errno() . "<br/>\r\n";
$sql = "INSERT INTO `db_error`(pagename, errstr, timer) VALUES('".$_SERVER["PHP_SELF"]."', '".addslashes($message)."', ".time().")";
@mysql_unbuffered_query($sql);
if (DEBUG==true){
echo "<html><head><title>MySQL 数据库错误</title>";
echo "<style type=\"text/css\"><!--.error { font: 11px tahoma, verdana, arial, sans-serif, simsun; }--></style></head>\r\n";
echo "<body>\r\n";
echo "<blockquote>\r\n";
echo "<textarea class=\"error\" rows=\"15\" cols=\"100\" wrap=\"on\" >" . htmlspecialchars($message) . "</textarea>\r\n";
echo "</blockquote>\r\n</body></html>";
exit;
}
}
function __destruct(){
$this->shutdown_queries = array();
$this->close_db();
}
function sql_select($tbname, $where="", $limit=0, $fields="*", $orderby="id", $sort="DESC"){
$sql = "SELECT ".$fields." FROM `".$tbname."` ".($where?" WHERE ".$where:"")." ORDER BY ".$orderby." ".$sort.($limit ? " limit ".$limit:"");
return $sql;
}
function sql_insert($tbname, $row){
foreach ($row as $key=>$value) {
$sqlfield .= $key.",";
$sqlvalue .= "'".$value."',";
}
return "INSERT INTO `".$tbname."`(".substr($sqlfield, 0, -1).") VALUES (".substr($sqlvalue, 0, -1).")";
}
function sql_update($tbname, $row, $where){
foreach ($row as $key=>$value) {
$sqlud .= $key."= '".$value."',";
}
return "UPDATE `".$tbname."` SET ".substr($sqlud, 0, -1)." WHERE ".$where;
}
function sql_delete($tbname, $where){
return "DELETE FROM `".$tbname."` WHERE ".$where;
}
//新增加一条记录
function row_insert($tbname, $row){
$sql = $this->sql_insert($tbname, $row);
return $this->query_unbuffered($sql);
}
//更新指定记录
function row_update($tbname, $row, $where){
$sql = $this->sql_update($tbname, $row, $where);
return $this->query_unbuffered($sql);
}
//删除满足条件的记录
function row_delete($tbname, $where){
$sql = $this->sql_delete($tbname, $where);
return $this->query_unbuffered($sql);
}
/* 根据条件查询,返回所有记录
* $tbname 表名, $where 查询条件, $limit 返回记录, $fields 返回字段
*/
function row_select($tbname, $where="", $limit=0, $fields="*", $orderby="id", $sort="DESC"){
$sql = $this->sql_select($tbname, $where, $limit, $fields, $orderby, $sort);
return $this->row_query($sql);
}
//详细显示一条记录
function row_select_one($tbname, $where, $fields="*", $orderby="id"){
$sql = $this->sql_select($tbname, $where, 1, $fields, $orderby);
return $this->row_query_one($sql);
}
function row_query($sql){
$rs = $this->query($sql);
$rs_num = $this->num_rows($rs);
$rows = array();
for($i=0; $i<$rs_num; $i++){
$rows[] = $this->fetch_array($rs);
}
$this->free_result($rs);
return $rows;
}
function row_query_one($sql){
$rs = $this->query($sql);
$row = $this->fetch_array($rs);
$this->free_result($rs);
return $row;
}
//计数统计
function row_count($tbname, $where=""){
$sql = "SELECT count(id) as row_sum FROM `".$tbname."` ".($where?" WHERE ".$where:"");
$row = $this->row_query_one($sql);
return $row["row_sum"];
}
}
?>

很久没有发帖了,把我常用的一些php类文件分享出来。
如果您加了新功能,或者是有改进,请与大家一起分享。
复制代码 代码如下:

<?php
$db_config["hostname"] = "127.0.0.1"; //服务器地址
$db_config["username"] = "root"; //数据库用户名
$db_config["password"] = "root"; //数据库密码
$db_config["database"] = "wap_blueidea_com"; //数据库名称
$db_config["charset"] = "utf8";
include('db.php');
$db = new db();
$db->connect($db_config);
//例:查询表 table_name 中 cid=1的所有记录。
$row = $db->row_select('table_name', 'cid=1');
?>

更详细的使用方法,请参考 db类文件中的注释。