我正在网站上工作,我很少在标题中收到错误。我知道错误的一个可能的解决方案是更改max_connections,但除此之外我也得到了这个错误:
Fatal error: Call to a member function prepare() on a non-object in /db_managers/read_plans.php on line 20
我不确定哪一个导致另一个。关于太多的连接错误,我已经联系了我的托管公司,看看max_connections的编号是多少。关于其他错误,这是我的实现:
的index.php:
<?php
require_once("layout/plans.php");
print_price_list($page);
?>
plans.php:
<?php
require_once("db_managers/read_plans.php");
$results = read_plans();
// by a foreach loop I display elements of $results array
?>
read_plans.php:
<?php
require_once("singleton.php");
function read_plans() {
$db = Database::getConnection();
$stmt = $db->prepare("SELECT * FROM the_table ORDER BY id DESC ");
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
?>
singleton.php:
<?php
require_once("database.php");
class Database {
private static $db;
private function __construct(){
self::$db = new PDO("mysql:host=".HOSTNAME.";dbname=".DATABASE.";charset=utf8", USERNAME, PASSWORD);
self::$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
public static function getConnection() {
if(!isset(self::$db))
new Database();
return self::$db;
}
?>
此实现中是否存在导致read_plans.php错误的问题?或者也许是因为网站是在共享主机上?
答案 0 :(得分:3)
我不确定哪一个导致另一个。
首先出现的一个。
我已联系过我的托管公司
您不需要托管公司查看号码,SELECT @@max_connections;
即可。
此实施中是否存在任何问题
这很不寻常,但一眼就看不到会创建多个连接。因此,问题很可能是由于查询速度慢造成的。你有吗?