织梦模版引入/include/common.inc.php打印$dsql参数为空是怎么回事?

页面:<?phprequire_once(dirname(__FILE__)."/include/common.inc.php");print_r($dsql);?>输出... 页面:
<?php
require_once (dirname(__FILE__) . "/include/common.inc.php");
print_r($dsql);
?>
输出:
DedeSql Object ( [linkID] => [dbHost] => [dbUser] => [dbPwd] => [dbName] => [dbPrefix] => [result] => [queryString] => [parameters] => [isClose] => [safeCheck] => 1 [recordLog] => [isInit] => [pconnect] => )
只有safeCheck=1 其他都为空是咋回事啊
网站也能正常运行
我想自己写个页面获取数据库连接操作数据库,没想到获取连接就卡住了
展开
 我来答
互联网前世今生

2019-08-01 · 科技领域创作者
个人认证用户
互联网前世今生
采纳数:314 获赞数:348

向TA提问 私信TA
展开全部
这个说明还没有对dedesql对象进行初始化,你需要在初始化之后才能看到它的参数赋值。

造成这个的原因就是common.inc.php里面只是引入变量,并没有进行初始化,初始化是在后面进行的。

你可以仔细研究一下织梦的加载流程。
织梦的index首先判断了/data/common.inc.php这个文件存不存在,存在就是已经安装过了,否则就是没安装过,跳到install/index.php。

接下来引入了全局加载的常用文件
require_once (dirname(__FILE__) . "/include/common.inc.php");

进入这个文件我们会看到
error_reporting(E_ALL || ~E_NOTICE);
define('DEDEINC', str_replace("\\", '/', dirname(__FILE__) ) );
define('DEDEROOT', str_replace("\\", '/', substr(DEDEINC,0,-8) ) );
define('DEDEDATA', DEDEROOT.'/data');
define('DEDEMEMBER', DEDEROOT.'/member');
define('DEDETEMPLATE', DEDEROOT.'/templets');

它定义了很多路径变量,这样在以后引入文件的时候,会变得非常方便和明了。
接下来定义了一个function _RunMagicQuotes(&$svar)函数,这个函数对post,get,global等变量进行了过滤处理,这样使用更安全。

接下来引入系统常用变量
require_once(DEDEDATA."/config.cache.inc.php");

上传变量
require_once(DEDEINC.'/uploadsafe.inc.php');

接下来引入数据库的操作类:
require_once(DEDEINC.'/dedesql.class.php');
疯花雪月
2019-08-01 · TA获得超过1548个赞
知道小有建树答主
回答量:1217
采纳率:50%
帮助的人:157万
展开全部
想要自己写可以的,但你的格式和语法要和原来的一样,并且DEDE本来就是很成熟的代码,你还要自己写做什么呢?加一些安全词句就足够了的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式