это мой php-код. Проблема связана с db-соединением и db. У меня слишком много ошибок подключения. я использовал $ db = null;, но у меня опять ошибка. Что я могу сделать? спасибо ...pdo слишком много соединений, предложение
db.php
public function getConnection(){
$this->conn = null;
try{
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name .";charset=utf8", $this->username, $this->password);
}
catch(PDOException $exception){
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}
$database = new Config();
$db = $database->getConnection();
data.inc.php
include 'db.php';
private $table_name = "contents";
public function __construct($db){
$this->conn = $db;
}
function dbclose() {
$this->conn = null;
return true;
}
function readContents($page, $from_record_num, $records_per_page,$category){
$query = "SELECT
*
FROM
" . $this->table_name . " where cat_id = ?
ORDER BY
date desc
LIMIT
{$from_record_num}, {$records_per_page}";
$stmt = $this->conn->prepare($query);
$stmt->bindParam(1, $cat_id);
$stmt->execute();
return $stmt;
}
index.php
$stmt1 = $product->readContents(1, 0, 20, 1); //page,0,20 list contents,category 1
$stmt2 = $product->readContents(1, 0, 20, 5); //page,0,20 list contents,category 5
$stmt3 = $product->readContents(1, 0, 20, 13); //page,0,20 list contents,category 13
while ($row1 = $stmt1->fetch(PDO::FETCH_ASSOC)){ //20 contents in category 1 }
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)){ //20 contents in category 5 }
while ($row3 = $stmt3->fetch(PDO::FETCH_ASSOC)){ //20 contents in category 13 }
$product->dbclose();
я использовал $ дб нуль; но, у меня снова слишком много ошибок подключения. Что я могу сделать ?
Можете ли вы добавить информацию об отладке для регистрации количества раз? GetConnection() 'получает вызов? Возможно, вам удастся использовать шаблон singleton, чтобы ограничить количество подключений db к одному. – maxhb
Если эти функции на самом деле являются методами в классе, вы можете сделать это простым, добавив 'class xxx {' где-то соответствующее – RiggsFolly
Также убедитесь, что вы не вызываете 'getConnection()' повсюду. Для каждого сценария требуется только одно соединение для запуска многих запросов. Вот почему вы делаете это в классе и храните одно соединение для многократного использования. – RiggsFolly