0

この質問には回答済みです (以下の質問を参照)

元の質問: 正しく機能し、問題のない Web サイトを構築しました。次に、VPS ベースのサーバーから真の専用サーバーへの移行を開始しました。これを行っている間に、ホスティング会社は私たちを CentOS 4 から CentOS 6 に、PHP 5.2.9 から PHP 5.3 にアップグレードし、DSO から SuPHP に切り替えました。現在、新しいサーバーが以前にはなかったエラーを引き起こしています。ページの 1 つが空白で表示されており、1 行のコード (26 行目) に絞り込みました。

1.  class directoryByLetterReverse{
2.      private $da=0;
3.      public $category;
4.      public $letter;
5.      public $listing;
6.      function __construct($letter,$category,$conn){
7.          $this->letter=$letter;
8.          $this->category=$category;
9.          $recordSet=&$conn->Execute('SELECT members.Member_ID AS MemberID, companies.CompanyName AS CompanyName, members.IPAddress AS IPAddress, directory_table.dir_id, members.BusinessType_ID, members.MemberType FROM members Inner Join companies ON companies.Company_ID = members.Company_ID Left Join directory_table ON directory_table.member_id = members.Member_ID WHERE companies.CompanyName LIKE "'.$this->letter.'%" AND members.BusinessType_ID LIKE "'.$this->category.'" AND members.published="1" ORDER BY directory_table.dir_id DESC, members.Member_ID DESC;');
10.         if(!$recordSet){
11.             print $conn->ErrorMsg();
12.         } else {
13.             $this->listing[0]['memberid']=''.$recordSet->fields[0].'';
14.             $this->listing[0]['companyname']=''.$recordSet->fields[1].'';
15.             $this->listing[0]['ipaddress']=''.$recordSet->fields[2].'';
16.             $this->listing[0]['dirid']=''.$recordSet->fields[3].'';
17.             $this->listing[0]['typeid']=''.$recordSet->fields[4].'';
18.             $this->listing[0]['memtype']=''.$recordSet->fields[5].'';
19.             while($array=$recordSet->FetchRow()){
20.                 $this->da++;
21.                 $this->listing[$this->da]['memberid']=''.$recordSet->fields[0].'';
22.                 $this->listing[$this->da]['companyname']=''.$recordSet->fields[1].'';
23.                 $this->listing[$this->da]['ipaddress']=''.$recordSet->fields[2].'';
24.                 $this->listing[$this->da]['dirid']=''.$recordSet->fields[3].'';
25.                 $this->listing[$this->da]['typeid']=''.$recordSet->fields[4].'';
26.                 $this->listing[$this->da]['memtype']=''.$recordSet->fields[5].'';   < - - - - this line right here is what is causing the problem
27.             };
28.         };
29.     }
30.     function returnSingle($j){
31.         return $this->listing[$j]['memberid'].' '.$this->listing[$j]['companyname'].' '.$this->listing[$j]['ipaddress'].' '.$this->listing[$j]['dirid'];
32.     }
33. }

私の人生では、26行目で何か問題を見つけることはできませんが、そこに残すと空白のページが表示され、コメントアウトすると、すべてが機能します(それを参照しているが期待するページに移動するまで)壊れる)。

また、補足として、私は MySQL とのやり取りに ADOdb Database Abstraction Library (http://adodb.sourceforge.net/) を使用しています。

実際には、コードに問題はなく、テスト サーバーのパフォーマンスが制限されており、キャッシュされていないページの読み込みの負荷を処理できませんでした。必要なものを見つけるために正しい方向に考えさせてくれたので、コメントをありがとう。

4

1 に答える 1

0

そして「;」なし 27行目と28行目でも機能しませんか?

于 2012-05-01T21:28:57.650 に答える