关于dedecms织梦中的$dsql的问题

php中文网
发布: 2016-06-23 13:01:05
原创
1256人浏览过

刚刚在写代码的时候,遇到一个奇怪的问题。
我想在图片上传成功后,向表uploads中插入一条记录。
那么问题来了,我新了一个insertuploadtbl函数

function insertuploadtbl($sfilename,$sfullurl,$mediatype){    global $dsql;    echo '222xx--';    require_once(dirname(__file__)."/../../../../../common.inc.php");    require_once(dirname(__file__)."/../../../../../userlogin.class.php");    echo '333xx--';    //检验用户登录状态    $cuserlogin = new userlogin();    $nowtme = time();    $fsize = filesize($sfullurl);                                  $inquery = "insert into `#@__uploads`(arcid,title,url,mediatype,width,height,playtime,filesize,uptime,mid)       values ('0','$sfilename','$sfullurl','$mediatype','0','0','0','{$fsize}','{$nowtme}','".$cuserlogin->getuserid()."'); ";    echo $inquery;    $dsql->executenonequery($inquery);    $fid = $dsql->getlastid();    addmyaddon($fid, $sfullurl);        }
登录后复制


代码可以执行,我用ff调试得到如下结果:


查了查表,里面并没有新增记录。

可是我把函数里的这段代码,放在函数的外面执行,却是成功的,表里新增了一条记录。
想问问大家,是否在函数里面,global $dsql;是不起作用的,有什么办法能够在函数里面
成功执行sql语句。在这先谢谢了,搞了好几个小时,都没弄明白。


回复讨论(解决方案)

函数里包含文件不可以的吧

可以呀。。详见dedecms中的 include\enums.func.php 中有。。比如

/** *  获取数据的JS代码(二级联动) * * @access    public * @param     string    $egroup   联动组 * @return    string */function GetEnumsJs($egroup){    global ${'em_'.$egroup.'s'};    include_once(DEDEDATA.'/enums/'.$egroup.'.php');    $jsCode = "<!--\r\n";    $jsCode .= "em_{$egroup}s=new Array();\r\n";    foreach(${'em_'.$egroup.'s'} as $k => $v)    {        // JS中将3级类目存放到第二个key中去        if (preg_match("#([0-9]{1,})\.([0-9]{1,})#", $k, $matchs))        {            $valKey = $matchs[1] + $matchs[2] / 1000;            $jsCode .= "em_{$egroup}s[{$valKey}]='$v';\r\n";        } else {             $jsCode .= "em_{$egroup}s[$k]='$v';\r\n";        }    }    $jsCode .= "-->";    return $jsCode;}
登录后复制

现在感觉不是include_one的问题,如果这个有问题的话,
$cuserLogin->getUserID(); 就会不对了。所以我感觉应当还是global $dsql; 没作用。
导致$dsql->ExecuteNoneQuery($inquery); 没执行插表操作。请求大家的指点。

有人知道么,求指教。。

我这边没有织梦  你可以写一条查询语句试试,global $dsql;有用没用

问题解决了,原因就是不能放在函数里面。把代码拿出来就行了。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号