-
-if(! class_exists('dba')) {
-class dba {
-
- private $debug = 0;
- private $db;
- public $connected = false;
-
- function __construct($server,$user,$pass,$db,$install = false) {
-
- $server = trim($server);
- $user = trim($user);
- $pass = trim($pass);
- $db = trim($db);
-
- if($install) {
- if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
- if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
- notice( sprintf( t('Cannot locate DNS info for database server \'%s\''), $server));
- $this->connected = false;
- $this->db = null;
- return;
+
+if(! class_exists('dba')) {
+
+ class dba {
+
+ private $debug = 0;
+ private $db;
+ private $exceptions;
+
+ public $mysqli = true;
+ public $connected = false;
+ public $error = false;
+
+ function __construct($server,$user,$pass,$db,$install = false) {
+
+ $server = trim($server);
+ $user = trim($user);
+ $pass = trim($pass);
+ $db = trim($db);
+
+ //we need both, server and username, so fail if one is missing
+ if (!(strlen($server) && strlen($user))){
+ $this->connected = false;
+ $this->db = null;
+ throw new InvalidArgumentException(t("Server name of user name are missing. "));
+ }
+
+ //when we are installing
+ if($install) {
+ if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
+ if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
+ $this->connected = false;
+ $this->db = null;
+ throw new InvalidArgumentException( t('Cannot locate DNS info for database server \'%s\''), $server);
+ }
+ }
+ }
+
+ if(class_exists('mysqli')) {
+ $this->db = new mysqli($server,$user,$pass,$db);
+ if(NULL === $this->db->connect_error) {
+ $this->connected = true;
+ } else {
+ throw new RuntimeException($this->db->connect_error);
+ }
+ } else {
+ $this->mysqli = false;
+ $this->db = mysql_connect($server,$user,$pass);
+ if($this->db && mysql_select_db($db,$this->db)) {
+ $this->connected = true;
+ } else {
+ throw new RuntimeException(mysql_error());