Php 错误mysqli::ssl_set():无法';拿不到mysqli
我正在尝试更新一些代码,以使用新环境所需的安全连接。我觉得我已经正确地实现了更改,但是我得到了错误:mysqli::ssl_set():无法获取mysqli,这似乎表明mysqli没有初始化,这是没有意义的,因为如果我删除我添加的关于ssl的位,它将连接,但由于缺少ssl而被拒绝。你知道这是怎么回事吗Php 错误mysqli::ssl_set():无法';拿不到mysqli,php,mysqli,Php,Mysqli,我正在尝试更新一些代码,以使用新环境所需的安全连接。我觉得我已经正确地实现了更改,但是我得到了错误:mysqli::ssl_set():无法获取mysqli,这似乎表明mysqli没有初始化,这是没有意义的,因为如果我删除我添加的关于ssl的位,它将连接,但由于缺少ssl而被拒绝。你知道这是怎么回事吗 public static function singleton($db_host, $db_login, $db_password, $db_name) { if (!self::$in
public static function singleton($db_host, $db_login, $db_password, $db_name) {
if (!self::$instance) {
self::$instance = new mysqli($db_host,$db_login, $db_password, $db_name);
self::$instance->ssl_set( NULL,NULL, "/var/www/html/classes/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL );
if (mysqli_connect_errno()){
ErrLog::write("Error while connecting to DB.");
return null;
}
}
return self::$instance;
}
我明白了。我必须初始化对象,然后将ssl和一些参数添加到connect调用中
self::$instance = new mysqli();
self::$instance->init();
self::$instance->ssl_set( NULL,NULL, "/var/www/html/lib/classes/BaltimoreCyberTrustRoot.crt.pem", NULL, NULL );
self::$instance->real_connect($db_host,$db_login, $db_password, $db_name, 3306, MYSQLI_CLIENT_SSL);