我在网站上遇到此错误:
致命错误:在第27行的/home/public_html/page.php中调用非对象的成员函数prepare()
这是我的功能:
function getSetting()
{
global $dbh;
$stmt = $dbh->prepare("SELECT setting_name, setting_value FROM settings");
try
{
$stmt->execute();
}
catch(PDOException $e)
{
die($e->getMessage());
}
$sdata = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$sdata[$row['setting_name']] = $row['setting_value'];
}
return $sdata;
}
上述错误仅在我的网站收到大量请求时才会发生。我使用这样的函数:
//Get settings from database.
$site = new Site; //Load the Site class, where the function getSetting() is located
$sdata=$site->getSetting();
我怀疑问题出在我的查询中,但我无法弄清楚如何进一步优化它。
非常感谢任何帮助
更新
这就是我连接数据库的方式:
try {
$dsn = "mysql:host=" . $database['host'] . ";dbname=" . $database['db'];
$dbh = new PDO($dsn, $database['user'], $database['pass'], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); // <== add this line
//echo 'Connected to Database<br/>';
}
catch(PDOException $e)
{
echo $e->getMessage();
}
我的max_connections
目前设为250