php – array_map导致服务器崩溃
发布时间:2020-12-13 22:47:20 所属栏目:PHP教程 来源:网络整理
导读:以下代码是我的apache web服务器.当我从parse_service_rows()中删除数据库查询时,apache不会崩溃. 我也试图在没有帮助的情况下从查询中删除WHERE子句. 我的代码看起来像这样: public function tab($tab_name = '') { /* * CODE TO GET ROWS */ $service['ro
以下代码是我的apache web服务器.当我从parse_service_rows()中删除数据库查询时,apache不会崩溃.
我也试图在没有帮助的情况下从查询中删除WHERE子句. 我的代码看起来像这样: public function tab($tab_name = '') { /* * CODE TO GET ROWS */ $service['rows'] = array_map(array($this,'parse_service_rows'),$service['rows']); } private function parse_service_rows($row) { // This query causes apache to crash $order = $this->db->get_where('services',array( 'service_user_id' => $this->user->get('user_id'),'service_firm_id' => $this->firm->id,'service_type' => $row['type'],'service_object_id' => $row['object_id'] ),1)->row_array(); return $row; } 但是,当我尝试使用foreach而不是array_map时,它有效: foreach ($service['rows'] as $key => $row) { $service['rows'][$key] = $this->parse_service_rows($row); } Windows错误窗口提供了以下信息: Problem Event Name: APPCRASH Application Name: httpd.exe Application Version: 2.4.2.0 Application Timestamp: 4fafa3e6 Fault Module Name: php5ts.dll Fault Module Version: 5.4.4.0 Fault Module Timestamp: 4fd8f85c Exception Code: c0000005 Exception Offset: 000713cd OS Version: 6.1.7600.2.0.0.256.1 Locale ID: 1061 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 为什么会这样? 解决方法
您应该检查您的IIS PHP错误日志,您应该能够通过PHP配置中的IIS管理员找到它并从那里读取它.
确保您的PHP日志级别至少为E_ALL并且error_reporting已打开,如果这是一个开发服务器,您可能也应该有display_errors.这些都是PHP.ini中的所有选项,您也可以从IIS管理控制台进行编辑. 如果这没有帮助,那么你应该看看一些领域; >在查询之前调用$this-> user-> get(‘user_id’)并将结果设置为变量的实例.这将显示用户类是否已实例化,以及用户类中get函数的作用域是否存在任何问题.>也可以在get_where之外调用它,$this-> firm-> id,id可能不是公共属性,这也会导致PHP致命. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |