2

このエラーが発生しています。クラス ファイル、関数ファイル、ビュー ファイルの順に使用します。致命的なエラー: 許可されたメモリが使い果たされました

        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.';
                }

姓名のみを検索する残りの関数とその他すべての関数は問題なく動作します。

4

1 に答える 1

1

メモリ制限を増やす代わりに、スクリプトによって処理されるデータの量を減らす必要があります。それがデータベースの目的です。データベースにすべてのジョブを実行させ、特定のページで必要なデータのみを返します。めったに 100 キロバイトを超えることはありません。そうしないと、ページが重すぎてブラウザーがロードできなくなります。

しかし、あなたの問題は偶然の単なる再帰によって引き起こされたようで、あなたはすでにそれを解決しています。

于 2013-02-20T04:37:49.407 に答える