mysqli :: query (): Не удалось получить mysqli

Предупреждение: mysqli :: query (): Не удалось получить mysqli в C: \ Program Files (x86) \ EasyPHP-DevServer-13.1VC9 \ data \ localweb \ мои переносные файлы \ class_EventCalendar.php в строке 43

Ниже приведен файл подключения …

<?php if(!isset($_SESSION)) { session_start(); } // Create array to hold error messages (if any) $ErrorMsgs = array(); // Create new mysql connection object $DBConnect = @new mysqli("localhost","root@localhost", NULL,"Ladle"); // Check to see if connection errno data member is not 0 (indicating an error) if ($DBConnect->connect_errno) { // Add error to errors array $ErrorMsgs[]="The database server is not available.". " Connect Error is ".$DBConnect->connect_errno." ". $DBConnect->connect_error."."; } ?> 

и это мой скрипт класса …

  <?php class EventCalendar { private $DBConnect = NULL; function __construct() { // Include the database connection data include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } function __destruct() { if (!$this->DBConnect->connect_error) { $this->DBConnect->close(); } } function __wakeup() { // Include the database connection data include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } // Function to add events to Zodiac calendar public function addEvent($Date, $Title, $Description) { // Check to see if the required fields of Date and Title have been entered if ((!empty($Date)) && (!empty($Title))) { /* if all fields are complete then they are inserted into the Zodiac event_calendar table */ $SQLString = "INSERT INTO tblSignUps". " (EventDate, Title, Description) ". " VALUES('$Date', '$Title', '". $Description."')"; // Store query results in a variable $QueryResult = $this->DBConnect->query($SQLString); в  <?php class EventCalendar { private $DBConnect = NULL; function __construct() { // Include the database connection data include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } function __destruct() { if (!$this->DBConnect->connect_error) { $this->DBConnect->close(); } } function __wakeup() { // Include the database connection data include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } // Function to add events to Zodiac calendar public function addEvent($Date, $Title, $Description) { // Check to see if the required fields of Date and Title have been entered if ((!empty($Date)) && (!empty($Title))) { /* if all fields are complete then they are inserted into the Zodiac event_calendar table */ $SQLString = "INSERT INTO tblSignUps". " (EventDate, Title, Description) ". " VALUES('$Date', '$Title', '". $Description."')"; // Store query results in a variable $QueryResult = $this->DBConnect->query($SQLString); в  <?php class EventCalendar { private $DBConnect = NULL; function __construct() { // Include the database connection data include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } function __destruct() { if (!$this->DBConnect->connect_error) { $this->DBConnect->close(); } } function __wakeup() { // Include the database connection data include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } // Function to add events to Zodiac calendar public function addEvent($Date, $Title, $Description) { // Check to see if the required fields of Date and Title have been entered if ((!empty($Date)) && (!empty($Title))) { /* if all fields are complete then they are inserted into the Zodiac event_calendar table */ $SQLString = "INSERT INTO tblSignUps". " (EventDate, Title, Description) ". " VALUES('$Date', '$Title', '". $Description."')"; // Store query results in a variable $QueryResult = $this->DBConnect->query($SQLString); 

Я не очень хорош в OO PHP, и я не уверен, почему эта ошибка возникает, я вытащил этот код из другого места, и единственное, что я изменил, это параметры @new mysqli. Может ли кто-нибудь помочь мне понять, что происходит не так?

Причина ошибки – неправильная инициализация объекта mysqli. Истинное построение было бы следующим:

 $DBConnect = new mysqli("localhost","root","","Ladle"); 

Вы закрываете dbconnect->close(); соединение слишком рано! ЗАКРЫТЬ соединение после ваших запросов !!


Объяснение : никогда не вставляйте xxxx->close(); в __destruct() , потому что соединение закрывается сразу же при загрузке CLASS .

Проверьте, нет ли в имени db «_» или «-», что помогает в моем случае