Ciao a tutti ho fatto un piccolo gestionale che usa una connesione PDO ad un DB Mysql...
Messo online ogni tanto mi da questo errore:
SQLSTATE[08004] [1040] Too many connections
Ho creato una mia classe...
e un file di configurazione che includo in ogni pagina del gestionale
file di configurazione...
codice:
include_once ($_SERVER['DOCUMENT_ROOT'].'/class/class_project.php');
$class_project = new class_project();
$class_project->connection_db();
dal file di configurazione richiamo la connessione a db... che è la funzione seguente
codice:
public function connection_db()
{
// INCLUDO LA CLASSE NestedPDO (estende la classe PDO e permette di fare un rollaback totale... in funzioni che hanno + transazioni separate)
include_once($_SERVER['DOCUMENT_ROOT'].'/class/NestedPDO.php');
$this->pdo ="";
$HOST = $this->HOST_PROD;
$USERNAME =$this->USERNAME_PROD;
$PASSWORD =$this->PASSWORD_PROD;
$DATABASE =$this->DATABASE_PROD;
// PDO
$this->pdo = new NestedPDO("mysql:host=" . $HOST . ";dbname=" . $DATABASE, $USERNAME, $PASSWORD);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $err) {
die("Errore durante la connessione al database!: ".$err->getMessage() );
}
}
non capisco se il problema "troppe connessioni" sia un problema di codice php... o di server...
ho letto qualcosina in giro su come poter riusare la stessa connessione a db senza crearne sempre una nuova... ma non ci ho capito molto...
non è corretto aprire una connessione ogni volta che apri una pagina? (comprese chiamate ajax varie)
...mi servirebbe qualcuno che mi illumini e mi riesca a dare qualche indicazione su come risolvere questa cosa... o cosa settare.. o guardare su server..non so.. ho spiato nel cpanel.. ma non ho trovato nulla che parli di numero di connessioni...