某些查询在php网站上的死亡白屏?

时间:2014-01-09 01:10:37

标签: php mysql sql yii error-log

嗨我在我的php网站上遇到死亡的白色屏幕,只有在给定某个查询时才会出现,我似乎无法找到任何错误。我试着查看var / logs / apache2并查找php错误日志,但没有。

我正在使用yii。我有一个列出过滤内容的页面。在我的控制器中,我有一个查询:

     $model= Person::model()->findbyPk('12345');
     $list = $model->contacts;

“联系人”是“人”模型的关系,列表是我应该展示的。如果我使用键'12345','14256和'23489'查询人,页面将正确显示。但是当我查询特定的'10012'时,它会给我一个没有错误且没有样式格式的白色屏幕。只是一个空白的屏幕。并且它的加载时间实际上比其他查询更长。我尝试记录它并检查共享数据/运行时但它甚至无法到达控制器。这恰好发生在这个特定的人身上。

最可能的原因是什么?

3 个答案:

答案 0 :(得分:0)

您需要检查是否在$ model中获得了结果。试试这个

$model= Person::model()->findbyPk('12345');
if($model=== NULL)
{
throw new CHttpException('I am empty. Please try another key');
}
else
{
// whatever you wanna do
    }

答案 1 :(得分:0)

步骤:

1)启用Yii DEBUG模式。 2)启用php上的所有错误报告.3)在this的帮助下启用Yii Profiling。并在使用之前检查人物模型,如下所示。

$model= Person::model()->findbyPk('12345');
if($model === NULL)
{
throw new CHttpException('There is no record with this key.');
}
// Normal expected code . 

答案 2 :(得分:0)

主要问题是Person模型的关系contacts中的数据太多。这种关系是一对多的。解决方案是使用其他方式/查询获取联系人。

我仍然不确定的是,当我在运行查询的控制器中登录时,它甚至无法到达控制器。即使日志是在查询运行之前,例如

   function actionListContacts() {
        Yii::log('Ireached this function');
        $request = Yii::app()->request;
        $personId = $request->get('personId');

        $model = Person::model()->findByPk($personId);
        // This is where the query for contacts should start..
        $contacts = $person->contacts;

        $this->render(['contacts' => $contacts]);
   } 

如果我使用id'12345',渲染成功,如果我检查日志,我可以看到我的日志。但是,当我使用10012,这导致白页和我检查日志,它甚至没有到达控制器。顺便说一句,id'10012'是自己检查数据库的。 :)