- $this->db = @new mysqli($server,$user,$pass,$db);
- if((mysqli_connect_errno()) && (! $install))
- system_unavailable();
+ global $a;
+
+ $stamp1 = microtime(true);
+
+ $server = trim($server);
+ $user = trim($user);
+ $pass = trim($pass);
+ $db = trim($db);
+
+ if (!(strlen($server) && strlen($user))){
+ $this->connected = false;
+ $this->db = null;
+ return;
+ }
+
+ if($install) {
+ if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
+ if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
+ $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
+ $this->connected = false;
+ $this->db = null;
+ return;
+ }
+ }
+ }
+
+ if(class_exists('mysqli')) {
+ $this->db = @new mysqli($server,$user,$pass,$db);
+ if(! mysqli_connect_errno()) {
+ $this->connected = true;
+ }
+ }
+ else {
+ $this->mysqli = false;
+ $this->db = mysql_connect($server,$user,$pass);
+ if($this->db && mysql_select_db($db,$this->db)) {
+ $this->connected = true;
+ }
+ }
+ if(! $this->connected) {
+ $this->db = null;
+ if(! $install)
+ system_unavailable();
+ }
+
+ $a->save_timestamp($stamp1, "network");