Php 7.0 PHP错误会话_start(),它说;无法清除会话锁定记录“;

Php 7.0 PHP错误会话_start(),它说;无法清除会话锁定记录“;,php-7.0,Php 7.0,我已经使用ajax将一些数据加载到显示用户发票列表的div中。我必须启动会话来获取用户id。它在本地主机PHP7.2中运行良好,但在服务器PHP7.0上,有时会显示“无法清除会话锁定记录”,有时也会工作。谁能帮我解决这个问题我会非常感激 我试图删除会话_start(),但它停止了我的所有代码。当我将服务器PHP7.0更改为5.0时,它工作得非常完美,但我的其他一些库由于旧版本的PHP而停止工作 下面是在div中使用ajax获取的数据。div显示了该警告 <?php session_sta

我已经使用ajax将一些数据加载到显示用户发票列表的div中。我必须启动会话来获取用户id。它在本地主机PHP7.2中运行良好,但在服务器PHP7.0上,有时会显示“无法清除会话锁定记录”,有时也会工作。谁能帮我解决这个问题我会非常感激

我试图删除会话_start(),但它停止了我的所有代码。当我将服务器PHP7.0更改为5.0时,它工作得非常完美,但我的其他一些库由于旧版本的PHP而停止工作

下面是在div中使用ajax获取的数据。div显示了该警告

<?php

session_start();

$assoc_id = $_SESSION['ayp_associate_id'];

include('../../../data/db.php');

if (isset($_POST['fetch_data'])) {

    $query = $conn->query("SELECT * FROM `transaction_details` WHERE `agentid` = '$assoc_id' ORDER BY `id` DESC LIMIT 300");

    if ($query->num_rows > 0) {
        while ($row = mysqli_fetch_assoc($query)) {

            $get_book = $conn->query("SELECT `packid` FROM `booking` WHERE `id` = " . $row['bookingid']);

            while ($book = mysqli_fetch_assoc($get_book)) {
                $pack_id = $book['packid'];
            }

            $get_pack = $conn->query("SELECT `package-name` FROM `packages` WHERE `id` = $pack_id");

            if ($get_pack == true) {
                while ($pack = mysqli_fetch_assoc($get_pack)) {
                    $package_name = $pack['package-name'];
                }
            } else {
                $package_name = "Unknown Package!";
            }

            echo "
            <div class='plate shadow bg_light-gray book_plate'>

                <div class='col_2-4'>
                    <h4>bk#" . $row['bookingid'] . " <span class='font_small'>$package_name</span></h4>
                    <p class='no_margin'>£ " . $row['total_amount'] . "</p>
                </div>

                <div class='col_2-4'>
                    <input onclick='show_invoice(" . $row['id'] . ");disable_bubbling(event);' type='button' class='btn btn_w-150 plate_btn float_right m-30-5 bg_default border_none border_radius-5 shadow show_details' value='Show Details'>
                </div>

            </div>
            ";
        }
    } else {
        echo "<div class='error_container'><center><h1>Nothing Found!</h1><p>We Didn't Found Any Invoice Data!</p></center></div>";
    }
}

?>

设置以下ini设置(也直接来自PHP)有助于缓解高负载项目(约300个并发用户)上的此问题


我也遇到了同样的问题,我通过禁用session.lazy_write in php.ini解决了这个问题,但是如何在宿主中编辑php.ini文件呢?
    ini_set('memcached.sess_lock_retries', 10);
    ini_set('memcached.sess_lock_wait_min', 1000);
    ini_set('memcached.sess_lock_wait_max', 2000);