在我的网站上,我在每个页面中包含一个连接文件,其中包含以下代码:
try {
$DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
}
catch(PDOException $e) {
echo $e->getMessage();
}
然后在每个页面中调用各种函数,每个函数看起来类似于:
function getAllBenchmarkQuestions($sid){
global $DB;
$quizHandle = $DB->prepare("SELECT * FROM benchmarkquestions
WHERE sid = :sid AND active = 0");
$quizHandle->bindParam(':sid', $sid);
$quizHandle->execute();
$quizHandle->setFetchMode(PDO::FETCH_ASSOC);
return $quizHandle;
}
如果我运行 show status like '%onn%';我明白了:
Aborted_connects 9505
Connections 1577837
Max_used_connections 52
Threads_connected 3
即使网站上除了我之外没有其他用户,每次刷新命令时连接数似乎都会增加,大约每秒 4 - 5 个。
我在最大连接数方面遇到了很多问题,并试图找出解决问题的方法。有几个页面是通过 ajax 调用的,我包含了连接文件。通过ajax调用的页面用于根据用户交互插入数据,例如:
<?php session_start();
include('../includes/startup.php');
$questionId = $_POST['questionId'];
$answer = $_POST['answer'];
insertQuizAnswer($questionId, $userId, $answer, 1);
?>
我的设置有误吗?
最佳答案
理论上,也许您可以将连接存储在 session 变量中?
关于php - 数据库连接数持续上升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20012800/