コードを書いているときに奇妙な問題に遭遇しました。
画像が正常にアップロードされた後、アップロードテーブルにレコードを挿入したいと考えています。
次に問題が発生します。新しい 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 の includeenums.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;}
$cuserLogin->getUserID(); が間違っていると思います。したがって、グローバル $dsql はまだ効果がないと感じます。
その結果、$dsql->ExecuteNoneQuery($inquery); はテーブル挿入操作を実行しませんでした。アドバイスを求めています。
ここには Dream Weaver がありません。グローバル $dsql を作成してみてください。これは役に立ちますか?
問題は解決されました。その理由は、関数内に配置できないことです。コードを取り出すだけです。