PHP错误导致空白页(错误报告工作正常)

PHP错误导致空白页(错误报告工作正常),php,adodb,suphp,server-migration,Php,Adodb,Suphp,Server Migration,此问题已得到回答,请参见下面的问题 原始问题: 我建立了一个网站,工作正常,没有问题。然后,我们开始从基于VPS的服务器迁移到真正的专用服务器。在此期间,我们的托管公司将我们从CentOS 4升级到CentOS 6,从PHP 5.2.9升级到PHP 5.3,并将我们从DSO切换到SuPHP。现在,新服务器导致了一个以前没有的错误。我们的一个页面显示为空白,我已将其缩小为一行代码行26 1. class directoryByLetterReverse{ 2. private $da=

此问题已得到回答,请参见下面的问题

原始问题: 我建立了一个网站,工作正常,没有问题。然后,我们开始从基于VPS的服务器迁移到真正的专用服务器。在此期间,我们的托管公司将我们从CentOS 4升级到CentOS 6,从PHP 5.2.9升级到PHP 5.3,并将我们从DSO切换到SuPHP。现在,新服务器导致了一个以前没有的错误。我们的一个页面显示为空白,我已将其缩小为一行代码行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行有任何错误,但是如果我把它放在那里,我会得到一个空白页,如果我把它注释掉,所有的东西都会工作,直到你转到一个引用它的页面,但我希望它会被打破

另外,我只是附带说明一下,我正在使用ADOdb数据库抽象库http://adodb.sourceforge.net/ 对于MySQL交互


事实证明,代码没有任何问题,测试服务器只是性能有限,无法处理未缓存页面加载的负载。感谢您的评论,因为他们让我朝着正确的方向思考,找到了我需要的东西。

而且没有;第27行和第28行仍然不起作用?

哪一行是您缩小范围的代码?哎呀,我编辑了这篇文章,但它是第26行,您遇到了什么错误?您是否记录PHP错误?是否记录apache错误?启用错误报告、显示错误或记录错误并检查日志文件。可能$recordSet->fields[5]不存在E_通知。如果不知道错误消息,很难说。其中一条记录中的memberType是否为null?这是我的猜测。字段[5]在其他情况下确实存在,因为它在前面被引用并且工作正常。然而,也有可能不是每一条记录都有这个,因此也不总是存在的。我也试过了,事实上,我在试着让它工作时加入了它们,没有什么区别。但是如果我在第26行的开头加上//,一切都开始工作了