当前位置:首页 >> IT/计算机 >>

php+mysql数据库操作类


http://e-and-e.taobao.com

PHP+mysql 数据库的类

<?php if (! defined ( 'AHINC' )) { exit ( \"Request Error!\" ); } /** 操作 mysql 数据库的类 Author:Silence Creatdate:2009-5-30 LastModify:2009-5-31 */ class Mysql { private $server = \"\"; private $user = \"\"; private $password = \"\"; private $database = \"\"; private $linkMode = 1; private $link_id = 0; private $query_id = 0; private $query_times = 0; private $result = array ();

http://e-and-e.taobao.com

private $fetchMode = MYSQL_ASSOC; private $err_no = 0; private $err_msg; private $character; //====================================== // 函数: mysql() // 功能: 构造函数 // 参数: 参数类的变量定义 // 说明: 构造函数将自动连接数据库 //====================================== public function __construct($server, $user, $password, $database, $character = \"UTF8\", $linkMode = 0) { if (empty ( $server ) || empty ( $user ) || empty ( $database )) $this->halt ( \"提交的数据库信息不完整!请检查服务器地址,用户和 数据库是否正确有效\" ); $this->server = $server; $this->user = $user; $this->password = $password; $this->database = $database; $this->linkMode = $linkMode; $this->character = $character;

http://e-and-e.taobao.com

$this->connect (); } //====================================== // 函数: connect($server,$user,$password,$database) // 功能: 连接数据库 // 参数: $server 主机名, $user 用户名 // 参数: $password 密码, $database 数据库名称 // 返回: 0:失败 // 说明: 默认使用类中变量的初始值 //====================================== public function connect($server = \"\", $user = \"\", $password = \"\", $database = \"\") { $server = $server ? $server : $this->server; $user = $user ? $user : $this->user; $password = $password ? $password : $this->password; $database = $database ? $database : $this->database; $this->link_id = $this->linkMode ? mysql_pconnect ( $server, $user, $password, $database ) : mysql_connect ( $server, $user, $password, $database ); if (! $this->link_id) { $this->halt ( \"数据库连接失败!请检查各项参数!\" ); return 0;

http://e-and-e.taobao.com

} if (! mysql_select_db ( $database, $this->link_id )) { $this->halt ( \"无法选择数据库\" ); return 0; } if ($this->character != \"GBK\" && $this->character != \"UTF8\") { $this->halt ( \"输入的编码模式不正确!\" ); return 0; } $this->query ( 'SET NAMES ' . $this->character ); return $this->link_id; } //====================================== // 函数: query($sql) // 功能: 数据查询 // 参数: $sql 要查询的 SQL 语句 // 返回: 0:失败 //====================================== public function query($sql) { $this->query_times ++; $this->query_id = mysql_query ( $sql, $this->link_id ); if (! $this->query_id) {

http://e-and-e.taobao.com

$this->halt ( \"<font color=red>\" . $sql . \"</font> 语句执行不成功! \" ); return 0; } return $this->query_id; } //====================================== // 函数: setFetchMode($mode) // 功能: 设置取得记录的模式 // 参 数 : $mode 模 式 MYSQL_ASSOC, MYSQL_NUM,

MYSQL_BOTH // 返回: 0:失败 //====================================== public function setFetchMode($mode) { if ($mode == MYSQL_ASSOC || $mode == MYSQL_NUM || $mode == MYSQL_BOTH) { $this->fetchMode = $mode; return 1; } else { $this->halt ( \"错误的模式.\" ); return 0; }

http://e-and-e.taobao.com

} //====================================== // 函数: fetchRow() // 功能: 从记录集中取出一条记录 // 返回: 0: 出错 record: 一条记录 //====================================== public function fetchRow() { $this->record = mysql_fetch_array ( $this->query_id,

$this->fetchMode ); return $this->record; } //====================================== // 函数: fetchAll() // 功能: 从记录集中取出所有记录 // 返回: 记录集数组 //====================================== public function fetchAll() { $arr [] = array (); while ( $this->record = mysql_fetch_array ( $this->query_id,

$this->fetchMode ) ) $arr [] = $this->record; mysql_free_result ( $this->query_id );

http://e-and-e.taobao.com

return $arr; } //====================================== // 函数: getValue() // 功能: 返回记录中指定字段的数据 // 参数: $field 字段名或字段索引 // 返回: 指定字段的值 //====================================== public function getValue($filed) { return $this->record [$filed]; } //====================================== // 函数: getquery_id() // 功能: 返回查询号 //====================================== public function getQuery_id() { return $this->query_id; } //====================================== // 函数: affectedRows() // 功能: 返回影响的记录数 //======================================

http://e-and-e.taobao.com

public function affectedRows() { return mysql_affected_rows ( $this->link_id ); } //====================================== // 函数: recordCount() // 功能: 返回查询记录的总数 // 参数: 无 // 返回: 记录总数 //====================================== public function recordCount() { return mysql_num_rows ( $this->query_id ); } //====================================== // 函数: getquery_times() // 功能: 返回查询的次数 // 参数: 无 // 返回: 查询的次数 //====================================== public function getquery_times() { return $this->query_times; } //======================================

http://e-and-e.taobao.com

// 函数: getVersion() // 功能: 返回 mysql 的版本 // 参数: 无 //====================================== public function getVersion() { $this->query ( \"select version() as ver\" ); $this->fetchRow (); return $this->getValue ( \"ver\" ); } //====================================== // 函数: getDBSize($database, $tblPrefix=null) // 功能: 返回数据库占用空间大小 // 参数: $database 数据库名 // 参数: $tblPrefix 表的前缀,可选 //====================================== public function getDBSize($database, $tblPrefix = null) { $sql = \"SHOW TABLE STATUS FROM \" . $database; if ($tblPrefix != null) { $sql .= \" LIKE '$tblPrefix%'\"; } $this->query ( $sql ); $size = 0;

http://e-and-e.taobao.com

while ( $this->fetchRow () ) $size += $this->getValue ( \"Data_length\" ) + $this->getValue ( \"Index_length\" ); return $size; } //====================================== // 函数: halt($err_msg) // 功能: 处理所有出错信息 // 参数: $err_msg 自定义的出错信息 //===================================== public function halt($err_msg = \"\") { if ($err_msg == \"\") { $this->errno = mysql_errno (); $this->error = mysql_error (); echo \"<b>mysql error:<b><br>\"; echo $this->errno . \":\" . $this->error . \"<br>\"; exit (); } else { echo \"<b>mysql error:<b><br>\"; echo $err_msg . \"<br>\"; exit (); }

http://e-and-e.taobao.com

} //====================================== // 函数: insertID() // 功能: 返回最后一次插入的自增 ID // 参数: 无 //====================================== public function insertID() { return mysql_insert_id (); } //====================================== //函数:close() //功能:关闭非永久的数据库连接 //参数:无 //====================================== public function close() { $link_id = $link_id ? $link_id : $this->link_id; mysql_close ( $link_id ); } //====================================== // 函数: sqlSelect() // 功能: 返回组合的 select 查询值 // 参数: $tbname 查询的表名

http://e-and-e.taobao.com

// 参数: $where 条件 // 参数: $fields 字段值 // 参数: $orderby 按某字段排序 // 参数: $sort 正序 ASC,倒序 DESC,$orderby 不为空是有效 // 参数: $limit 取得记录的条数,0,8 // 返回: 查询语句 //====================================== function sqlSelect($tbname, $where = \"\", $limit = 0, $fields = \"*\", $orderby = \"\", $sort = \"DESC\") { $sql = \"SELECT \" . $fields . \" FROM \" . $tbname . ($where ? \" WHERE \" . $where : \"\") . ($orderby ? \" ORDER BY \" . $orderby . \" \" . $sort : \"\") . ($limit ? \" limit \" . $limit : \"\"); return $sql; } //====================================== // 函数: sqlInsert() // 功能: Insert 插入数据函数 // 参数: $taname 要插入数据的表名 // 参数: $row 要插入的内容 (数组)

http://e-and-e.taobao.com

// 返回: 记录总数 // 返回: 插入语句 //====================================== function sqlInsert($tbname, $row) { foreach ( $row as $key => $value ) { $sqlfield .= $key . \",\"; $sqlvalue .= \"'\" . $value . \"',\"; } return \"INSERT INTO \" . $tbname . \"(\" . substr ( $sqlfield, 0, - 1 ) . \") VALUES (\" . substr ( $sqlvalue, 0, - 1 ) . \")\"; } //====================================== // 函数: sqlUpdate() // 功能: Update 更新数据的函数 // 参数: $taname 要插入数据的表名 // 参数: $row 要插入的内容 (数组) // 参数: $where 要插入的内容 的条件 // 返回: Update 语句 //====================================== function sqlUpdate($tbname, $row, $where) { foreach ( $row as $key => $value ) {

http://e-and-e.taobao.com

$sqlud .= $key . \"= '\" . $value . \"',\"; } return \"UPDATE \" . $tbname . \" SET \" . substr ( $sqlud, 0, - 1 ) . \" WHERE \" . $where; } //====================================== // 函数: sqlDelete() // 功能: 删除指定条件的行 // 参数: $taname 要插入数据的表名 // 参数: $where 要插入的内容 的条件 // 返回: DELETE 语句 //====================================== function sqlDelete($tbname, $where) { if (! $where) { $this->halt ( \"删除函数没有指定条件!\" ); return 0; } return \"DELETE FROM \" . $tbname . \" WHERE \" . $where; } //====================================== //函数:checkSql SQL 语句的过滤 //功能:过滤一些特殊语法

http://e-and-e.taobao.com

//参数:$db_string 查询的 SQL 语句 //参数:$querytype 查询的类型 //====================================== function checkSql($db_string, $querytype = 'select') { $clean = ''; $old_pos = 0; $pos = - 1; //如果是普通查询语句,直接过滤一些特殊语法 if ($querytype == 'select') { $notallow1 =

\"[^0-9a-z@\._-]{1,}(union|sleep|benchmark|load_file|outfile)[^0-9a-z@\. -]{1,}\"; //$notallow2 = \"--|/\*\"; if (eregi ( $notallow1, $db_string )) { exit ( \"<font size='5' color='red'>Safe Alert: Request Error step 1 !</font>\" ); } } //完整的 SQL 检查 while ( true ) { $pos = strpos ( $db_string, '\'', $pos + 1 ); if ($pos === false) {

http://e-and-e.taobao.com

break; } $clean .= substr ( $db_string, $old_pos, $pos - $old_pos ); while ( true ) { $pos1 = strpos ( $db_string, '\'', $pos + 1 ); $pos2 = strpos ( $db_string, '\\', $pos + 1 ); if ($pos1 === false) { break; } elseif ($pos2 == false || $pos2 > $pos1) { $pos = $pos1; break; } $pos = $pos2 + 1; } $clean .= '$s$'; $old_pos = $pos + 1; } $clean .= substr ( $db_string, $old_pos ); $clean = trim ( strtolower ( preg_replace ( array ('~\s+~s' ), array (' ' ), $clean ) ) ); //老版本的 Mysql 并不支持 union,常用的程序里也不使用 union,但 是一些黑客使用它,所以检查它

http://e-and-e.taobao.com

if

(strpos

(

$clean,

'union'

)

!==

false

&&

preg_match

( '~(^|[^a-z])union($|[^[a-z])~s', $clean ) != 0) { $fail = true; } //发布版本的程序可能比较少包括--,#这样的注释, 但是黑客经常使用 它们 elseif (strpos ( $clean, '/*' ) > 2 || strpos ( $clean, '--' ) !== false || strpos ( $clean, '#' ) !== false) { $fail = true; } //这些函数不会被使用,但是黑客会用它来操作文件,down 掉数据库 elseif (strpos ( $clean, 'sleep' ) !== false && preg_match

( '~(^|[^a-z])sleep($|[^[a-z])~s', $clean ) != 0) { $fail = true; } elseif (strpos ( $clean, 'benchmark' ) !== false && preg_match ( '~(^|[^a-z])benchmark($|[^[a-z]) ~s', $clean ) != 0) { $fail = true; } elseif (strpos ( $clean, 'load_file' ) !== false && preg_match

http://e-and-e.taobao.com

( '~(^|[^a-z])load_file($|[^[a-z]) ~s', $clean ) != 0) { $fail = true; } elseif (strpos ( $clean, 'into outfile' ) !== false && preg_match ( '~(^|[^a-z])into\s+outfile($|[^ [a-z])~s', $clean ) != 0) { $fail = true; } //老版本的 MYSQL 不支持子查询,我们的程序里可能也用得少,但 是黑客可以使用它来查询数据库敏感信息 elseif (preg_match ( '~\([^)]*?select~s', $clean ) != 0) { $fail = true; } if (! empty ( $fail )) { exit ( \"<font size='5' color='red'>Safe Alert: Request Error step 2!</font>\" ); } else { return $db_string; } } //====================================== //函数:析构函数

http://e-and-e.taobao.com

//功能:释放类,关闭非永久的数据库连接 //====================================== public function __destruct() { $this->close (); } } ?>

欢迎光临易易充值:http://e-and-e.taobao.com


相关文章:
Php操作mysql数据库类.doc
Php操作mysql数据库类_计算机软件及应用_IT/计算机_专业资料。php通过mysqli操作mysql数据库的简单类 Php 操作 mysql 数据库类 没事干,自己写了一个 php 操作 ...
PHPmysql数据库操作类.doc
PHPmysql数据库操作类 - <?php class mysql {
MySQL数据库操作类(PHP编写)(MySQL).doc
MySQL数据库操作类(PHP编写)(MySQL) - 数据库操作类(增、删、改
最详细的PHP操作MYSQL数据库入门教程.doc
最详细的PHP操作MYSQL数据库入门教程 - 最详细的PHP操作MYSQL数据库入门教程。讲解了PHP操作MYSQL的基本原理和常用的操作函数,是入门级教程,适合刚刚开始学习PHP+...
使用php对mysql数据库进行的操作_图文.ppt
使用phpmysql数据库进行的操作 - 使用php的mysql扩展库操作mysql数据库 mysql扩展库简介 ? mysql扩展允许我们访问MySQL 数据库,并对 MySql数据...
第六章 PHP操作MySQL数据库_图文.pdf
第六章 PHP操作MySQL数据库 - 电子商务网站设计 PHP语言 信息与工程学院:朱晓晶 Tel:15368068582 E-mail:908160211@qq.com 第六章 PHP...
php数据库操作封装类+示例.doc
php数据库操作封装类+示例 - <?php /* ※※※ 【文件名】:.
一个普遍通用的PHP连接MYSQL数据库类.txt
一个普遍通用的PHP连接MYSQL数据库类 - 工具书,文集,丛书,教材,教辅... 一个普遍通用的PHP连接MYSQL数据库类_IT/计算机_专业资料。工具书,文集,丛书,教材,教辅 ...
5-4PHP操作MySQL数据库的函数解读_图文.ppt
5-4PHP操作MySQL数据库的函数解读 - PHP操作MySQL数据库的方法
PHP操作MySQL数据库的函数_图文.ppt
PHP操作MySQL数据库的函数 - PHP操作MySQL数据库的方法 本讲大纲
PHP管理MySQL数据库中的数据剖析_图文.ppt
PHP管理MySQL数据库中的数据剖析 - 第15章 本章要求: PHP管理MySQL数据库中的数据 ? ? ? ? ? ? 了解PHP操作MySQL数据库的步骤 详细讲解通过MySQL函...
完整的PHPMYSQL数据库类.txt
完整的PHPMYSQL数据库类 - 完整的PHP MYSQL数据库类 代码如下: <?php class mysql { private $db_host; //数据库主...
第8章 PHP操作MySQL数据库编程--2018-01-25_图文.pdf
第8章 PHP操作MySQL数据库编程--2018-01-25_计算机软件及应用
实验5-1 利用PHP实现mysql数据库操作.doc
实验5-1 利用PHP实现mysql数据库操作_计算机软件及应用_IT/计算机_专业资料。电子商务基础 实验5-1 利用 PHP 实现 mysql 数据库操作【实验目的】 ? ? 掌握 SQL...
14.第18章 PHP操作MySQL数据库.ppt
14.第18章 PHP操作MySQL数据库14.第18章 PHP操作MySQL数据库隐藏>> PHP与MySQL的数据库接口 PHP访问MySQL的一般步骤 1.连接MySQL服务器 2.选择MySQL数据库 3....
PHP操作MYSQL数据库.doc
PHP操作MYSQL数据库 - PHP 操作 MYSQL 数据库 选择数据库函数
PHP与MySQL数据库操作函数详解.txt
PHPMySQL数据库操作函数详解 - 说PHP就不能不提MySQL,而要讲MySQL,那么PHP也是必然要被提起。PHP的迅速崛起,离不开MySQL,而MySQL的广泛应用,也与PHP休戚相...
php数据库操作类代码(增,删,改,查).doc
php数据库操作类代码(增,删,改,查) - 数据库操纵基本流程为: 1、连接数
7_PHP程序与MySQL数据库汇总_图文.ppt
7_PHP程序与MySQL数据库汇总 - 数据库技术与应用 PHP+MySQL 郑州大学 李国红 7 PHP程序与MySQL数据库 ? 7.1 PHP与MySQL数据库 ? 概述、连接服务...
php操作mysql数据库.doc
php操作mysql数据库 - php 操作 mysql 数据库 提交者: admin 日期: 2008/4/1 0:32 阅读: 342 摘要:php 的应用并不依赖数据库,但数据库与 php...
更多相关文章: