2011-12-09 133 views
0

昨天我改變了我的數據庫模式,並在我的應用程序中更改了數據庫查詢,此後我一直收到500個內部服務器錯誤。我不認爲問題是查詢,因爲我可以從我的模型運行它,並從我的控制器打印數組。問題似乎是在構建模板時。500更改mysql查詢後發生內部服務器錯誤

下面是我的代碼,

模型

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]格式錯誤 標題爲 腳本。壞頭=燒烤%3A2%3A%2259%22%的3BS%3A10%3A%:index.php文件,引用者:http://urbantalent.factoryagency.co.uk/search

回答

4

我最好的猜測是你試圖把太多東西放入ci_session cookie中。 有些值可能沒有正確編碼,看起來不像一個有效的標題。 set-cookie HTTP頭將會出錯,因此你會得到「格式錯誤的頭文件」錯誤。 首先限制進入此Cookie的內容。也許禁用/不使用它在所有的,如果你可以(暫時當您調試代碼)

然後修復動態SQL - 你在每個前需要空間「」

.gender或許應該還用雙引號包裹。編輯: 是的,現在我更加確信。 sico87 - 這是從您的網站直播(見下文 - 抱歉一個很長的字符串)。 這個cookie的大小接近8K。 HTTP標頭的大小有一定的限制。從Apache的內存來看,它是8K。 所以我最好的猜測(是的,猜!)是在某些情況下,你把超過8K的cookie放在cookie中,並且這個請求失敗。解決方案是不使用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 
+0

「guess」?這是賭徒網站嗎?我認爲對程序員來說是。 –

+0

是的,猜測。因爲我可以看到這是由set-cookie引起的,但由於我無法訪問代碼,因此我無法100%確定。有人需要嘗試。不同意您的-1 – DmitryK

+0

您的猜測是什麼完美的,一個優化的mysql查詢後面我們再次猜測烹飪! – Udders

-1

也許你需要改變這種

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; } 
+0

仍然是一個interanl服務器錯誤 – Udders

+0

可能是一些與訪問由更改的查詢返回的數據是錯誤的(至少從查詢中未處理的數據到tempate ::編譯函數傳遞)。 – codeling

+0

我不確定男人。 – Pritom

1

首先,echo()SQL語句(然後die(),避免碰到錯誤),然後在SQL工具中嘗試它,看看會發生什麼。我認爲,這是一個錯誤的SQL語句,或者SQL引擎出於某種原因不喜歡它 - 所以您應該嘗試獲取詳細的錯誤消息,而不是「500內部服務器錯誤」。

+0

echo sql並在PHPMYADMIN中運行,並返回預期的行。 – Udders

+0

將SQL語句更改爲簡單的SQL語句,例如*從dadada *中選擇sum(dududu),查看是否有任何SQL可以運行,或者以某種方式連接失敗 – ern0

相關問題