2017-12-27 5 views
-1

私は開発したPHPアプリケーションを持っています。私は、同じセッションを使用して、複数のウィンドウでアプリケーションを使用し、あるウィンドウが重要なmySqlタスクを実行中である場合、他のウィンドウでは、最初のウィンドウが完了してクエリが実行されるまで完了しないことに気づいた。私は、許可されているユーザーセッションあたりのクエリの数に制限があると仮定している、そして、単一のセッションが複数のウィンドウまたはクエリを使用するためのPHPの設定があるが、それを見つけることができない。誰かが私を正しい方向に向けることができますか?それをグーグルしようとしましたが、検索のフレーズに正しい方法を理解できませんでした。PHPセッションユーザのmySQLクエリを制限しますか?

ありがとうございます!

+0

それは –

+0

は、ログインしているユーザーのセッションIDを作成するデータベースに保存し、その後にloging時にユーザのセッションを検証し、複数のウィンドウを使用して...ブラウザのことです。セッションIDが現在のユーザとウィンドウと一致しない場合、phpはユーザにフラグを立てます。それは同じブラウザの同じユーザーの複数のログインを持つ同じソリューションです。 – dean

答えて

1

あなたはsession_write_close()を見ましたか?

PHPスクリプトに接続すると、PHPはセッションをロックし(書き込み目的で)、そのセッションへの他のリクエストはキューに入れられます(別のPHPスクリプト)

PHPスクリプトが実行されるまでセッションがロックされるため、MySQLタスクは基本的にセッションキューを詰まらせます。

実際のタスクを実行する直前に、もうセッションに書き込まないようにPHPに伝えてください。

<?php 

session_start(); 
$user = $_SESSION["user"]; 

// you did your thing, now leave the session 
session_write_close(); 

// some clogging task 
while ($i < 10) { 
    sleep(1); 
    $i++; 
} 
関連する問題