Ahojte vytvaram registraciu v php. Registracia funguje(pouzivatel vyplni formular data sa odoslu a zapisu do databazy) lenze to funguje s chybami (warningy)
Database.php
Warning: mysqli::mysqli(): (08004/1040): Too many connections
Warning: mysqli::mysqli(): (08004/1040): Too many connections
Warning: mysqli::query(): Couldn't fetch mysqli
Warning: mysqli::close(): Couldn't fetch mysqli iprve dve chyby(vela pripojeni) hlasi pri vytvoreni spojeni v konstruktore a v metode createDB
druhe dve v metode CreateDB pri vytvarani noveho spojenia a a jeho uzavreti.
tento kod je v triede Database.phpKód:
public function __construct( $database = NULL, $user = NULL, $password = NULL, $databaseName = NULL ) {
$this->database_host = $database;
$this->db_user = $user;
$this->password = $password;
$this->databaseName = $databaseName;
try {
$this->mysqli_connect = new mysqli( $this->database_host, $this->db_user, $this->password, $this->databaseName = $databaseName );
} catch ( Exception $vynimka ) {
echo "cannot connect to database" . $vynimka->getMessage();
}
Kód:
public function createDB() {
$this->mysqli_connect1 = new mysqli( "localhost", "root", "" );
$createDB = "CREATE DATABASE IF NOT EXISTS login";
if ( $this->mysqli_connect1->query( $createDB ) ) {
# echo "database is created";
} else {
echo "database wasn't created or was created"; #. $this->mysqli_connect1->error;
}
$this->mysqli_connect1->close();
}
Registration.php
Tento kod je v triede Registration.phpCielom je vytvorenie databazy nasledne tabulky a zapisanie noveho pouzivatela do nej. Po registracii vytvaram databazu ak neexistuje to iste plati pre tabulku a nakoniec vlozim pouzivatela do nej. Chcel by som to vyriesit tak aby najprv vzniklo spojenie kde vytvorim databazu- metoda createDB() nasledne vytvorim nove spojenie uz na tuto vytvorenu databazu(CreateDB) do ktorej vlozim tabulku(metoda createTable) a nasledne doregistrationWithPostData(); - teda vlzoenie pozuivatela do databazy. Ako je mozne urobit tieto pripojenia aby mi nehlasilo to many connections ?
Kód:
try {
$connect = new Database();
$connect->createDB();
$this->db_connection = new Database( "localhost", "root", "", "login" );
$this->db_connection->createTable();
$this->db_connection->doregistrationWithPostData();
# $this->db_connection->closeDB();
} catch ( mysqli_sql_exception $vynimka ) {
echo "Chyba pripojenia k databaze v triede" . get_class() . "chyba" . $vynimka->getMessage();
}
Dakujem za odpoved - riesim to par dni a neviem si s tym dat rady