db.php
来自「mysee网络直播源代码Mysee Lite是Mysee独立研发的网络视频流媒体」· PHP 代码 · 共 119 行
PHP
119 行
<?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;
}
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?