DB.php
资源名称:p2p_vod.rar [点击查看]
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:3k
源码类别:
P2P编程
开发平台:
Visual C++
- <?php
- //define("__SQL_DEBUG", 1);
- //define("__SQL_LOGFILE", 'debug/sql_logfile.txt');
- /*
- * 数据库连接
- * 参数: $max_retries 最大尝试连接次数
- */
- function db_connect($max_retries = 3) {
- GLOBAL $DB_Host, $DB_User, $DB_Pwd, $DB_Name;
- GLOBAL $__DB_CONNID;
- if($__DB_CONNID)
- return $__DB_CONNID; // 存在连接标识,直接返回
- while($max_retries-- > 0) {
- $__DB_CONNID = @mysql_connect($DB_Host, $DB_User, $DB_Pwd);
- if($__DB_CONNID) {
- @mysql_select_db($DB_Name, $__DB_CONNID);
- break;
- } else {
- internalError("Could not connect to MySQL,n" . mysql_error());
- sleep(1); // 暂停 1 秒后继续尝试连接
- }
- }
- return $__DB_CONNID;
- }
- function db_disconnect() {
- GLOBAL $__DB_CONNID;
- @mysql_close($__DB_CONNID);
- $__DB_CONNID = false; // 取消全局的连接标识
- }
- /*
- * 数据库查询
- * 参数: $query 查询语句
- $unbuffered 是否使用非缓冲查询
- */
- function db_query($query, $unbuffered = false) {
- GLOBAL $__DB_CONNID;
- if(!$__DB_CONNID)
- $__DB_CONNID = db_connect();
- if(defined("__SQL_DEBUG")) {
- $startTime = utime();
- }
- if(!$unbuffered) {
- $ret = @mysql_query($query, $__DB_CONNID) or internalError("Query invalid:n".$query."n".mysql_error());
- } else {
- $ret = @mysql_unbuffered_query($query, $__DB_CONNID) or internalError("Query invalid:n".$query."n".mysql_error());
- }
- // 如果开启了数据库调试,将查询动作进行记录
- if(defined("__SQL_DEBUG")) {
- GLOBAL $db_pageQueries;
- $db_pageQueries[] = $query;
- if(defined("__SQL_LOGFILE")) {
- if($fp = fopen(__SQL_LOGFILE, 'a')) {
- $duration = (utime() - $startTime) * 1000;
- fputs($fp, date("Y-m-d H:i:s") . ": " . $_SERVER['REQUEST_URI'] . ": $duration: " . $query . "n");
- fclose($fp);
- }
- }
- }
- return $ret;
- }
- // 快速查询(非缓冲)
- function db_fast_query($query) {
- return db_query($query, true);
- }
- // 受到查询影响的列数
- function db_affected_rows() {
- return @mysql_affected_rows($GLOBALS['__DB_CONNID']);
- }
- function db_free_result($res) {
- return @mysql_free_result($res);
- }
- function db_num_rows($res) {
- return @mysql_num_rows($res);
- }
- function db_fetch_row($res) {
- return @mysql_fetch_row($res);
- }
- function db_insert_id() {
- return @mysql_insert_id($GLOBALS['__DB_CONNID']);
- }
- function db_fetch_array($res, $type = MYSQL_ASSOC) {
- return @mysql_fetch_array($res, $type);
- }
- /*
- * 提交查询并获取返回的数据
- * 参数: $sql 查询语句
- */
- function db_query_get_array($sql) {
- $res = db_fast_query($sql);
- if(!$res)
- internalError("Error in db_query_get_array for $sql");
- $ret = Array();
- while($v = db_fetch_array($res)) {
- array_push($ret, $v);
- }
- db_free_result($res);
- return $ret;
- }
- ?>