Maison > Article > développement back-end > 关于dedecms织梦中的$dsql的问题
刚刚在写代码的时候,遇到一个奇怪的问题。
我想在图片上传成功后,向表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); }
函数里包含文件不可以的吧
可以呀。。详见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;有用没用
问题解决了,原因就是不能放在函数里面。把代码拿出来就行了。