私はこれについて頭を悩ませることができないようです。
私は現在持っています:
$checkRunningSQL = $odb -> prepare("SELECT time,date FROM `api` WHERE `key` = :key AND `time` + `date` > UNIX_TIMESTAMP()");
$checkRunningSQL -> execute(array(':key' => $_GET['key']));
$countRunning = $checkRunningSQL -> fetchAll();
$stillrunning = ($countRunning[0][time] + $countRunning[0][date]) - time();
if($stillrunning >= 1)
{
echo '<p><strong>ERROR: </strong>You currently have more than your allocated running.</p>';
die();
}
これは現在、次のようなテーブルをチェックインします。
現在実行中のものが1つある場合、これは正常に機能しています。ただし、キーごとに制限を設けたいと考えていました。ちょうど今、10 秒で実行されているものがある場合、その 10 秒が経過するまで別のものを起動することはできません。しかし、私が望んでいたのは、彼らが 5 を起動できるようにすることです。6 番目を起動しようとすると、エラーがエコーされます。
ページをリクエストするとき、MySQL に入力される引数を指定します。
$insertLogSQL = $odb -> prepare("INSERT INTO `api` VALUES (:key, :ip, :port, :time, :method, UNIX_TIMESTAMP())");
$insertLogSQL -> execute(array(':key' => $_GET['key'], ':ip' => $_GET['host'], ':port' => $_GET['port'], ':time' => $_GET['time'], ':method' => $_GET['method']));
1つではなく5つに制限する方法について頭を悩ませているようには見えません。これに投じられたアイデアは素晴らしいでしょう。