高手帮我解释一段php代码

是一段php数据的链接代码,由于字数有限,我就发在我空间里了。http://hi.baidu.com/408619/blog/item/026a101ba0a8de0f8... 是一段php数据的链接代码,由于字数有限,我就发在我空间里了。
http://hi.baidu.com/408619/blog/item/026a101ba0a8de0f8718bfec.html
希望高手能帮我发一份比较详细的注释,方便我以后学习。里面的函数调用之类的,我也略知道一些,只是这份代码多了,就不知道什么意思。搞糊涂了。
我的信箱是iisnt@qq.com,注释好了,发给我吧,谢谢了。
展开
 我来答
foxaobe
2011-04-12 · TA获得超过331个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:621万
展开全部
/*参数
$server 数据库地址
$username 数据库用户名
$password 数据库密码
$database 数据库名
$$link 数据库链接对象
*/

function sql_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link')
{

global $$link;

//是否开启数据库持久连接
if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password); //开启持久连接
} else {
$$link = mysql_connect($server, $username, $password); //不开启持久连接
}

if ($$link) mysql_select_db($database); //如果连接上库则选择具体的数据库

//查询数据库版本,如果版本高于4,则设置数据库编码方式为utf8
if (intval(substr(mysql_get_server_info(), 0, 1) >= 4)){
//设置数据库编码方式
mysql_query('set names utf8');
}
//返回数据库连接对象
return $$link;
}

function sql_close($link = 'db_link') {
global $$link;
//关闭数据库连接对象
return mysql_close($$link);
}

//定义显示MYSQL执行错误信息函数
function sql_error($query, $errno, $error) {
die('<font color="#000000"><b>' . $errno . ' - ' . $error . '<br><br>' . $query . '<br><br><small><font color="#ff0000">[TEP STOP]</font></small><br><br></b></font>');
}

function sql_query($query) {
//mysql_query函数是用来执行SQL语句的,返回结果集
$result = mysql_query($query) or sql_error($query, mysql_errno(), mysql_error());
return $result;
}

function sql_perform($table, $data, $action = 'insert', $parameters = '', $link = 'db_link')
{
reset($data); //将数组的内部指针指向第一个单元
if ($action == 'insert') {

$query = 'insert into ' . $table . ' ('; //字符串的拼接

while (list($columns, ) = each($data)) {

$query .= $columns . ', '; //字符串的拼接

}
$query = substr($query, 0, -2) . ') values ('; //字符串的拼接

reset($data); //将数组的内部指针指向第一个单元

while (list(, $value) = each($data)) {
//(string)为强制转换成字符串
switch ((string)$value) {
case 'now()':
$query .= 'now(), '; //字符串的拼接
break;
case 'null':
$query .= 'null, '; //字符串的拼接
break;
default:
$query .= '\'' . sql_input($value) . '\', '; //使用函数sql_input
break;
}
}
$query = substr($query, 0, -2) . ')'; //字符串的拼接
} elseif ($action == 'update') {
$query = 'update ' . $table . ' set '; //字符串的拼接
while (list($columns, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= $columns . ' = now(), '; //字符串的拼接
break;
case 'null':
$query .= $columns .= ' = null, '; //字符串的拼接
break;
default:
$query .= $columns . ' = \'' . sql_input($value) . '\', '; //字符串的拼接
break;
}
}

//substr()为截取字符串函数,以下表示的是从头到倒数第二个字符结束的字符串
$query = substr($query, 0, -2) . ' where ' . $parameters; //字符串的拼接
}

//返回执行该字符串
return sql_query($query, $link);
}

function sql_fetch_array($db_query) {
return mysql_fetch_array($db_query, MYSQL_ASSOC); //从结果集中取得一行作为关联数组,或数字数组,或二者兼有
}

function sql_result($result, $row, $field = '') {
return mysql_result($result, $row, $field); //取得结果数据
}

function sql_num_rows($db_query) {
return mysql_num_rows($db_query); //取得结果集中行的数目
}

function sql_data_seek($db_query, $row_number) {
return mysql_data_seek($db_query, $row_number); //移动内部结果的指针
}

function sql_insert_id() {
return mysql_insert_id(); //取得上一步 INSERT 操作产生的 ID
}

function sql_free_result($db_query) {
return mysql_free_result($db_query); //释放结果内存
}

function sql_fetch_fields($db_query) {
return mysql_fetch_field($db_query); //从结果集中取得列信息并作为对象返回
}

function sql_output($string) {
return htmlspecialchars($string); //对字符转义成html代码如“<”转义后为“<”
}

function sql_input($string) {
return addslashes($string); //对字符进行使用反斜线引用字符串
}

//以下函数作用为当传入参数为字符串时返回去掉空格的字符串
//如果传入的为数组时分两种情况,如果是一位数组则转换成二维数组,如果是比一维数组大的数组则返回结构不变
function sql_prepare_input($string)
{
if (is_string($string)) {
//如果为字符串
return trim(stripslashes($string));
} elseif (is_array($string)) {
//如果是数组
reset($string);
while (list($key, $value) = each($string)) {
//递归调用自己
$string[$key] = sql_prepare_input($value);
}
return $string;
} else {
return $string;
}
}

具体字符串怎么拼的得自己体会。说不出来、呵呵
Harwise
2011-04-12 · TA获得超过2321个赞
知道小有建树答主
回答量:3299
采纳率:0%
帮助的人:1146万
展开全部
汗这么简单的代码 还要注释啊?但代码太长了,我又不知你哪里会,哪里不会.你又不说/
不就几个内容吗?
开头定义常量几个常量(我最讨厌这些扮高手的代码)->写了数据库连接,关闭,连接错误时处理方法,执行数据库语言方法,还有几个本来一句话就能实现的,他又重写了的方法.乱七八糟的一堆东西->跟着调用循环输出..
你没给分 只能这样说
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mztt2010
2011-04-12 · TA获得超过628个赞
知道小有建树答主
回答量:1001
采纳率:100%
帮助的人:573万
展开全部
哪不懂你说吧
追问
就是里面那些函数里面的代码是什么意思..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式