2013-02-20 87 views
2

我收到此错误。我使用了一个类文件,函数文件,然后是视图文件。致命错误:让内存耗尽PHP OOP PDO致命错误:允许的内存耗尽

 public function adminSearchFullName($admin_firstname,$admin_lastname){ 
     $adminsearchresultsfullname = array(); 

     try { 
      $db = database::databaseConnect(); 

      $stmt = $db->prepare('SELECT * FROM personalinfo WHERE firstname like ? AND lastname like ? AND deleted = 0'); 
      $stmt->execute(array('%' . $admin_firstname . '%', '%' . $admin_lastname . '%')); 

      $adminsearchresultsfullname = $stmt->fetchAll(PDO::FETCH_OBJ); 

      if($stmt->rowCount() < 1){ 
       $adminsearchresultsfullname = null; 
      } 
      $db = null; 
     } 
     catch (PDOException $e){ 
      $adminsearchresultsfullname = null; 
     } 
     return $adminsearchresultsfullname; 
    }   

我的功能看起来是这样的:

 function adminSearchFullName($admin_firstname,$admin_lastname){ 
    return $adminsearchresultsfullname = adminSearchFullName($admin_firstname,$admin_lastname); 
} 

最后一点我认为网页看起来是这样的:

if(!empty ($admin_firstname) && !empty($admin_lastname)){ 
        //Query and display contact details based on first and last names. 

        $adminsearchresultsfullname = adminSearchFullName($admin_firstname,$admin_lastname); 
        if ($adminsearchresultsfullname != null){ 
         ?> 
         <a href="index.php">Home</a> | <a href="adduser.php">Add User</a> | <a href="viewusers.php">View Users</a> |<a href="addcontact.php">Add Contact</a> | <a href="viewcontacts.php">View Contacts</a> | <a href="searchcontact.php">Search Contact</a><br /><hr /> 
         <p>Click on the name to see details of the contact.</p> 

         <table cellpadding="5"> 
          <tr> 
           <td> 
            <b>Search result</b> 
           </td> 
          </tr> 

         <?php 

         foreach($adminsearchresultsfullname as $key => $adminfoundfullname){ 
          $admin_id_fullname = $adminfoundfullname->id; 
          $admin_found_fullname_firstname = $adminfoundfullname->firstname; 
          $admin_found_fullname_lastname = $adminfoundfullname->lastname; 
          ?> 
          <tr> 
           <td> 
            <a href="contactdetails.php?id=<?php echo $admin_id_fullname; ?>"><?php echo $admin_found_fullname_firstname . ' ' . $admin_found_fullname_lastname; ?></a> 
           </td> 
          </tr> 
         <?php 
         }?> 
         </table> 
        <?php } 

       }else{ 
        echo 'No record found. Please <a href="searchcontact.php"> return</a> and try a different name.'; 
       } 

的休息和所有其他职能要么只是名字和姓氏工作罚款。

+0

看起来像你的内存限制,尝试设置ini_set('memory_limit','500M'); – shapeshifter 2013-02-20 02:41:59

+1

对不起,发现我的问题: function adminSearchFullName($ admin_firstname,$ admin_lastname){ return $ adminsearchresultsfullname = contacts :: adminSearchFullName($ admin_firstname,$ admin_lastname); } – Willem 2013-02-20 02:45:09

回答

1

不必增加内存限制,而必须减少脚本处理的数据量。这就是数据库的用途。让数据库完成所有工作,然后仅返回特定页面上所需的数据。它很少超过100千字节 - 否则浏览器将无法加载页面。

但是,您的问题似乎是偶然发生的递归,您已经解决了这个问题。

相关问题