永发信息网

DEDECMS一个函数的疑惑

答案:1  悬赏:20  手机版
解决时间 2021-06-09 07:17
  • 提问者网友:刺鸟
  • 2021-06-09 02:14

//连接数据库
function Open($pconnect=false)
{
global $dsql;
//连接数据库
if($dsql && !$dsql->isClose)
{
$this->linkID = $dsql->linkID;
}
else
{
if(!$pconnect)
{
$this->linkID = @mysql_connect($this->dbHost,$this->dbUser,$this->dbPwd);
}
else
{
$this->linkID = @mysql_pconnect($this->dbHost,$this->dbUser,$this->dbPwd);
}

//复制一个对象副本
CopySQLPoint($this);
}

//处理错误,成功连接则选择数据库
if(!$this->linkID)
{
$this->DisplayError("DedeCms错误警告:<font color='red'>连接数据库失败,可能数据库密码不对或数据库服务器出错!</font>");
exit();
}
@mysql_select_db($this->dbName);
$mysqlver = explode('.',$this->GetVersion());
$mysqlver = $mysqlver[0].'.'.$mysqlver[1];
if($mysqlver>4.0)
{
@mysql_query("SET NAMES '".$GLOBALS['cfg_db_language']."', character_set_client=binary, sql_mode='', interactive_timeout=3600 ;", $this->linkID);
}
return true;
}

最后返回的true是不是函数里面参数的值$pconnect=true?

希望给个详细的解析,谢谢

最佳答案
  • 五星知识达人网友:西风乍起
  • 2021-06-09 03:36
这个true不是$pconnect=true里的true,return true就是返回一个真值,告诉调用者这个Open函数执行成功了, 参数里的$pconnect=false是个默认参数,如果你调用的时候不带参数
Open()
那么$pconnect的值就是false
然后程序里通过种种逻辑和对$pconnect值的判断来完成对mysql数据库的连接,如果连接成功,那么返回true,如果连接失败就用exit()退出,直接停止页面的解释。可以看出$pconnect是否设置为true只是影响了不同连接函数的调用(mysql_connect和mysql_pconnect),所以这个return true严格来说和$pconnect没关系,只和数据库有没有连接成功有关。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯