Другая часть системы, вызвавшая проблему, проблема была решена
public static function getParticpantsIdsWithTitles(array $proftitlecodes)
{
//connect_mysqli is a singleton, but everytime this is called a new instance is created
$sqlconn = connect_mysqli::get_instance();
}
//All of these method calls cause the constructor of connect_mysqli to run
Participant::getParticpantsIdsWithTitles(array(1,2,3));
Participant::getParticpantsIdsWithTitles(array(1,2,3));
Есть ли какое-то правило, которое я не знаю о синглтоне при использовании его из статической функции? новый mysqli_object создается каждый раз. (ТОЛЬКО ОТ статических функций). Он отлично работает от нестатических функций.
private static $instance = FALSE;
var $host ;
var $dbUser ;
var $dbPass ;
var $dbName ;
var $dbConn ;
var $dbconnectError ;
var $query;
var $result;
var $row;
function __construct ()
{
$this->host = 'host' ;
$this->dbUser = 'user' ;
$this->dbPass = 'password' ;
$this->dbName = 'db' ;
$this->dbConn = new mysqli($this->host , $this->dbUser , $this->dbPass, $this->dbName ) ;
file_put_contents("/Library/WebServer/Documents/test.txt", "CONNECT\n", FILE_APPEND);
if ( !$this->dbConn )
{
trigger_error ('could not connect to server' ) ;
$this->dbconnectError = true ;
}
}
public static function get_instance()
{
if(!self::$instance)
{
self::$instance = new connect_mysqli();
}
return self::$instance;
}