+ -
当前位置:首页 → 问答吧 → 十万火急!在使用ThinkPHP 2.1 开发过程中遇到了奇怪的问题。

十万火急!在使用ThinkPHP 2.1 开发过程中遇到了奇怪的问题。

时间:2011-04-08

来源:互联网

POST后 大部分时候正常。但偶尔出现如下错误出现错误后重新提交。(每次提交的数据一样):
  1. PHP Warning:  Invalid callback App::appError, class 'App' not found in D:\site\OA\Lib\Action\userAction.class.php on line 9
  2. PHP Deprecated:  Call-time pass-by-reference has been deprecated in D:\site\OA\Lib\Action\userAction.class.php on line 9
复制代码
第九行的代码是:
  1. $jb = JobsNameToId($_POST['jobs'],&$name_strings);
复制代码
函数 JobsNameToId代码是:
  1. function parseValueToSql($value)
  2. {
  3.         switch(gettype($value))
  4.         {
  5.                 case 'boolrean':
  6.                         return $value?'TRUE':'FALSE';
  7.                 case 'string':
  8.                         return "'".mysql_escape_string($value)."'";
  9.                 case 'NULL':
  10.                         return 'NULL';
  11.                 case 'array':
  12.                         foreach($value as &$val){
  13.                                 $val = parseValueToSql($val);
  14.                         }
  15.                         break;
  16.         }
  17.         return $value;
  18.        
  19. }
  20. function JobsNameToId($names,&$names_string)
  21. {
  22.         if(!@preg_match_all("#\\s*([^\\@\\s\\,\\;]+)\\@([^;,\\s]+)#is", $names, $result))
  23.         {
  24.                 return false;
  25.         }
  26.         if(count($result[1])==0){
  27.                 return false;
  28.         }
  29.         $job_names = implode(',', parseValueToSql($result[1]));
  30.         $org_names = implode(',', parseValueToSql($result[2]));
  31.        

  32.         $ns_arr=array();
  33.         foreach($job_names as $key=>$val)
  34.         {
  35.                 $ns_arr[]=$val."{$val}@{$org_names[$key]}";
  36.         }
  37.         $names_string = implode(';', $ns_arr);
  38.        
  39.         $md = new Model();
  40.         $result = $md->query("select
  41.                 `oa_jobs_link`.`org_id` AS `org_id`,
  42.                 `oa_jobs`.`id` AS `id`,
  43.                 `oa_jobs`.`name` AS `name`,
  44.                 `oa_jobs_link`.`org_name` AS `org_name`,
  45.                 `oa_jobs`.`max_users` AS `max_users`,
  46.                 `oa_jobs`.`users` AS `users`
  47.                 from (`oa_jobs` join `oa_jobs_link` on(`oa_jobs_link`.`jobs_id` = `oa_jobs`.`id` AND (`oa_jobs`.`users` < `oa_jobs`.`max_users`) AND (`oa_jobs_link`.`org_name` IN({$org_names})))) WHERE `name` IN ({$job_names});
  48.         ");
  49.        
  50.         $ret = array();
  51.         foreach($result as &$val){
  52.                 $ret[]=$val['id'];
  53.         }
  54.        
  55.         return $ret;
  56. }
复制代码

作者: bywayboy   发布时间: 2011-04-08

JobsNameToId跟userAction.class.php是什么关系?
是否需要$this->?

作者: hbolive   发布时间: 2011-04-08