更改mysql查询后服务器内部错误


500 Internal server error after changing mysql query

昨天我改变了我的数据库模式,因此在我的应用程序中的数据库查询,从那时起我已经收到500个内部服务器错误。我不认为问题是查询,因为我可以从我的模型运行它,并从我的控制器打印数组。问题似乎是在构建模板时出现的。

下面是我的代码,

public function searchCandidates($type=null, $gender=null, $age=null)
    {
        if($age != "0") {
            $age = implode(", %",$age);
        }
        $sql = 'SELECT `candidates`.`candidate_id`, 
                        `candidates`.`first_name`, 
                        `candidates`.`surname`, 
                        `candidates`.`DOB`, 
                        `candidates`.`gender`, 
                        `candidates`.`talent`, 
                        `candidates`.`location`, 
                        `candidates`.`availability`,
                        `candidates`.`youtube_showreel_1`,
                        `candidates`.`youtube_showreel_2`,
                        `candidates`.`youtube_showreel_3`,
                        `candidates`.`youtube_showreel_4`,
                        `candidates`.`youtube_showreel_5`,
                        `candidates`.`youtube_showreel_desc_1`,
                        `candidates`.`youtube_showreel_desc_2`,
                        `candidates`.`youtube_showreel_desc_3`,
                        `candidates`.`youtube_showreel_desc_4`,
                        `candidates`.`youtube_showreel_desc_5`,
                        `candidates`.`date_created`,
                         DATE_FORMAT(NOW(), "%Y") - DATE_FORMAT(`candidates`.`DOB`, "%Y") - (DATE_FORMAT(NOW(), "00-%m-%d") < DATE_FORMAT(`candidates`.`DOB`, "00-%m-%d")) as `age`,
                        `candidate_assets`.`url`, 
                        `candidate_assets`.`asset_size`
                FROM `candidates`
                LEFT JOIN `candidate_assets` ON `candidate_assets`.`candidates_candidate_id` = `candidates`.`candidate_id`
                WHERE `candidates`.`availability` = "yes"';
                //is there a certain criteria
                if($type != "0") { $sql .= 'AND `candidates`.`talent` = '.$type; }
                if($age != "0") { $sql .= 'AND `candidates`.`playing_age` LIKE "%'.$age.'%"';}
                if($gender != false){ $sql .= 'AND `candidates`.`gender` = '.$gender; }
                $sql .= ' GROUP BY `candidates`.`candidate_id`';
        $query = $this->db->query($sql);
        //die(print_r($query->result_array()));
        //die($this->db->last_query());
        return $query->result_array();
    }
控制器

$data['results'] = 
$this->candidates_model->searchCandidates($this->input->post('type'), $this->input->post('gender'), $this->input->post('age')); 
            $this->session->set_userdata('search', $data['results']);
            //die(print_r($this->session->userdata('search')));
            $this->template->build('search/results', $data);

我的错误日志中的错误看起来像这样,

[Fri Dec 09 10:28:49 2011] [error] [client xx.xx.xx.]xxx)畸形头球脚本。

错误标头= b %3A2%3A%2259%22% 3b %3A10%3A%: index.php, reference: http://urbantalent.factoryagency.co.uk/search

我最好的猜测是您试图在ci_session cookie中放入太多东西。其中的一些值可能没有正确编码,看起来不像一个有效的标头。set-cookie HTTP头将是错误的,因此你得到"畸形头"错误。从限制饼干的成分开始。如果可以的话,可以禁用/不使用它(在调试代码时暂时禁用)

然后修复动态SQL -您需要在每个"AND"前面留出空间

。性别可能也应该用双引号括起来。

编辑:是的,现在我更加确信了。sico87 -这是从你的网站(见下文-很抱歉很长的字符串)现场直播。这个饼干的大小接近8K。HTTP头的大小有一定的限制。Apache的内存是8K。因此,我的最佳猜测(是的,猜测!)是,在某些情况下,您在cookie中放入了超过8K的内容,并且此请求失败。解决方案是不要使用cookie来存储/传输大量数据。

ci_session=a%3A5%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%22f80a32998134fc9d24ee7cf0ee41592a%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A13%3A%2299.99.99.99%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A70%3A%22Mozilla%2F5.0+%28compatible%3B+MSIE+9.0%3B+Windows+NT+6.1%3B+WOW64%3B+Trident%2F5.0%29%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1323429638%3Bs%3A7%3A%22search1%22%3Ba%3A15%3A%7Bi%3A0%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2252%22%3Bs%3A10%3A%22first_name%22%3Bs%3A4%3A%22Eric%22%3Bs%3A7%3A%22surname%22%3Bs%3A10%3A%22James+Dean%22%3Bs%3A6%3A%22gender%22%3Bs%3A4%3A%22male%22%3Bs%3A6%3A%22talent%22%3Bs%3A5%3A%22actor%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A42%3A%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5OIiZLo50Hc%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-24+12%3A06%3A53%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2256%22%3Bs%3A3%3A%22url%22%3Bs%3A27%3A%22resized_Eric_Dean_web_1.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A1%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2253%22%3Bs%3A10%3A%22first_name%22%3Bs%3A7%3A%22Matthew%22%3Bs%3A7%3A%22surname%22%3Bs%3A8%3A%22Holbrook%22%3Bs%3A6%3A%22gender%22%3Bs%3A4%3A%22male%22%3Bs%3A6%3A%22talent%22%3Bs%3A5%3A%22actor%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A42%3A%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZBJPV2YnXvk%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-24+09%3A40%3A38%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2230%22%3Bs%3A3%3A%22url%22%3Bs%3A28%3A%22resized_Matthew_Holbrook.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A2%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2254%22%3Bs%3A10%3A%22first_name%22%3Bs%3A5%3A%22Steve%22%3Bs%3A7%3A%22surname%22%3Bs%3A6%3A%22Murphy%22%3Bs%3A6%3A%22gender%22%3Bs%3A4%3A%22male%22%3Bs%3A6%3A%22talent%22%3Bs%3A5%3A%22actor%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A0%3A%22%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-18+10%3A06%3A43%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2245%22%3Bs%3A3%3A%22url%22%3Bs%3A24%3A%22resized_Steve_Murphy.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A3%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2255%22%3Bs%3A10%3A%22first_name%22%3Bs%3A7%3A%22Anthony%22%3Bs%3A7%3A%22surname%22%3Bs%3A5%3A%22Berry%22%3Bs%3A6%3A%22gender%22%3Bs%3A4%3A%22male%22%3Bs%3A6%3A%22talent%22%3Bs%3A5%3A%22actor%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A42%3A%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DGXB4_Q6oNUk%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-23+05%3A40%3A51%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2230%22%3Bs%3A3%3A%22url%22%3Bs%3A25%3A%22resized_Anthony_Berry.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A4%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2256%22%3Bs%3A10%3A%22first_name%22%3Bs%3A4%3A%22Emma%22%3Bs%3A7%3A%22surname%22%3Bs%3A5%3A%22Beard%22%3Bs%3A6%3A%22gender%22%3Bs%3A6%3A%22female%22%3Bs%3A6%3A%22talent%22%3Bs%3A5%3A%22actor%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A42%3A%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DfUBF8L9pV1Q%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-23+05%3A41%3A45%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2228%22%3Bs%3A3%3A%22url%22%3Bs%3A28%3A%22resized_Emma_Beard_web_1.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A5%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2257%22%3Bs%3A10%3A%22first_name%22%3Bs%3A10%3A%22John-Henry%22%3Bs%3A7%3A%22surname%22%3Bs%3A6%3A%22Carter%22%3Bs%3A6%3A%22gender%22%3Bs%3A4%3A%22male%22%3Bs%3A6%3A%22talent%22%3Bs%3A5%3A%22actor%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A0%3A%22%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-23+05%3A42%3A19%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2234%22%3Bs%3A3%3A%22url%22%3Bs%3A35%3A%22resized_John_Carter_website_pic.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A6%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2258%22%3Bs%3A10%3A%22first_name%22%3Bs%3A7%3A%22Melanie%22%3Bs%3A7%3A%22surname%22%3Bs%3A5%3A%22Clare%22%3Bs%3A6%3A%22gender%22%3Bs%3A6%3A%22female%22%3Bs%3A6%3A%22talent%22%3Bs%3A5%3A%22actor%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A0%3A%22%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-23+05%3A42%3A52%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2242%22%3Bs%3A3%3A%22url%22%3Bs%3A18%3A%22resized_images.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A7%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2259%22%3Bs%3A10%3A%22first_name%22%3Bs%3A7%3A%22Phoenix%22%3Bs%3A7%3A%22surname%22%3Bs%3A3%3A%22Lee%22%3Bs%3A6%3A%22gender%22%3Bs%3A4%3A%22male%22%3Bs%3A6%3A%22talent%22%3Bs%3A9%3A%22presenter%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A0%3A%22%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-24+09%3A15%3A08%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2231%22%3Bs%3A3%3A%22url%22%3Bs%3A36%3A%22resized_Phoenix_Lee_-_14.10_.04_.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A8%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2260%22%3Bs%3A10%3A%22first_name%22%3Bs%3A5%3A%22Holly%22%3Bs%3A7%3A%22surname%22%3Bs%3A5%3A%22Bryan%22%3Bs%3A6%3A%22gender%22%3Bs%3A6%3A%22female%22%3Bs%3A6%3A%22talent%22%3Bs%3A9%3A%22presenter%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A0%3A%22%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-24+09%3A30%3A32%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2223%22%3Bs%3A3%3A%22url%22%3Bs%3A29%3A%22resized_Holly_Bryan_web_1.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A9%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2261%22%3Bs%3A10%3A%22first_name%22%3Bs%3A5%3A%22Susie%22%3Bs%3A7%3A%22surname%22%3Bs%3A4%3A%22Juul%22%3Bs%3A6%3A%22gender%22%3Bs%3A6%3A%22female%22%3Bs%3A6%3A%22talent%22%3Bs%3A9%3A%22presenter%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A0%3A%22%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-24+09%3A31%3A56%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2254%22%3Bs%3A3%3A%22url%22%3Bs%3A28%3A%22resized_Susie_Juul_web_1.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A10%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2262%22%3Bs%3A10%3A%22first_name%22%3Bs%3A4%3A%22Neil%22%3Bs%3A7%3A%22surname%22%3Bs%3A7%3A%22Lumberg%22%3Bs%3A6%3A%22gender%22%3Bs%3A4%3A%22male%22%3Bs%3A6%3A%22talent%22%3Bs%3A9%3A%22presenter%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A42%3A%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D7QDWDtm3tgs%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-24+09%3A32%3A34%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2227%22%3Bs%3A3%3A%22url%22%3Bs%3A30%3A%22resized_Neil_Lumberg_web_1.jpg%22%3Bs%3A10%3A%22asset_size%22%3Bs%3A5%3A%22large%22%3B%7Di%3A11%3Ba%3A12%3A%7Bs%3A12%3A%22candidate_id%22%3Bs%3A2%3A%2263%22%3Bs%3A10%3A%22first_name%22%3Bs%3A5%3A%22Megan%22%3Bs%3A7%3A%22surname%22%3Bs%3A7%3A%22Roberts%22%3Bs%3A6%3A%22gender%22%3Bs%3A6%3A%22female%22%3Bs%3A6%3A%22talent%22%3Bs%3A9%3A%22presenter%22%3Bs%3A12%3A%22availability%22%3Bs%3A3%3A%22yes%22%3Bs%3A18%3A%22youtube_showreel_1%22%3Bs%3A0%3A%22%22%3Bs%3A23%3A%22youtube_showreel_desc_1%22%3BN%3Bs%3A12%3A%22date_created%22%3Bs%3A19%3A%222011-11-24+09%3A33%3A16%22%3Bs%3A3%3A%22age%22%3Bs%3A2%3A%2214%22%3Bs%3A3%3A%22url%22%3B

首先,对SQL语句echo()(然后die(),避免遇到错误),并在SQL工具中尝试,看看会发生什么。我认为,这是一个错误的SQL语句,或者只是SQL引擎不喜欢它的某些原因-所以你应该尝试得到一个详细的错误信息,而不是"500内部服务器错误"。

也许你需要改变这个

if($type != "0") { $sql .= 'AND `candidates`.`talent` = '.$type; }
            if($age != "0") { $sql .= 'AND `candidates`.`playing_age` LIKE "%'.$age.'%"';}
            if($gender != false){ $sql .= 'AND `candidates`.`gender` = '.$gender; }

if($type != "0") { $sql .= ' AND `candidates`.`talent` = '.$type; }
            if($age != "0") { $sql .= ' AND `candidates`.`playing_age` LIKE "%'.$age.'%"';}
            if($gender != false){ $sql .= ' AND `candidates`.`gender` = '.$gender; }