dblink = mysql_connect($host, $user, $pass); if(!$this->dblink) { echo 'Could not connect to database'; exit; } elseif(strlen($database)) { @$sdb = mysql_select_db($database); if(!$sdb) { echo 'Could not select database'; exit; } else { //$this->mysql_set_charset($charset, $this->dblink); } } } } function mysql_set_charset($charset, $link_identifier = null) { if ($link_identifier == null) { return mysql_query('SET CHARACTER SET "'.$charset.'"'); } else { return mysql_query('SET CHARACTER SET "'.$charset.'"', $link_identifier); } } function &getInstance() { if(!is_object($this->db)) { $this->db = new dbManager(); } return $this->db; } function handleResult($rs, $q, $t) { if($rs) { if($this->log_error) { $this->log_error = 0; return false; } return $rs; } else { $er = mysql_error(); $er_no = mysql_errno(); $this->mysql_error = $er; $this->mysql_errno = $er_no; $this->errorQueries++; if(DB_LOG_ERRORS) { // log errors $log = array(); $log[request_uri] = $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]; $log[request_method] = $_SERVER[REQUEST_METHOD]; $log[referer] = $_SERVER[HTTP_REFERER]; $log[useragent] = $_SERVER[HTTP_USER_AGENT]; $log[ip] = $_SERVER[REMOTE_ADDR]; $log[x_forwarded_for] = $_SERVER[HTTP_X_FORWARDED_FOR]; $log[php_file] = $_SERVER[SCRIPT_FILENAME]; $log[datetime] = date('Y-m-d H:i:s'); $log[query] = $q; $log[error_msg] = $er; $log[error_no] = $er_no; $log[timp_executie] = $t; if(!$this->log_error) { $this->log_error = 1; $this->insertAssoc(DB_ERROR_LOG_TABLE, $log, 2); #return false; } elseif($this->log_error) { #return false; } } if(DB_DISPLAY_ERRORS) { echo 'Query: ' . $q; echo '
'; echo 'Error['.$er_no.']: ' . $er . ''; echo '
'; } if(DB_EXIT_AFTER_ERROR) { echo 'mysql error encountered, exiting due to your application settings.'; exit; } return false; } } function runQuery($q) { $this->totalQueries++; $t1 = $this->mtime_float(); $rs = @mysql_query($q); $t2 = $this->mtime_float(); return $this->handleResult($rs, $q, $t2 - $t1); } function queryAssoc($q) { $rs = $this->runQuery($q); $ret = array(); if($rs) { while($row = mysql_fetch_assoc($rs)) $ret[] = $row; mysql_free_result($rs); } return $ret; } function queryRow($q) { $rs = $this->runQuery($q); $ret = array(); if($rs) { return mysql_fetch_assoc($rs); mysql_free_result($rs); } return $ret; } function queryScalar($q) { $rs = $this->runQuery($q); $ret = ''; if($rs) { $row = mysql_fetch_row($rs); $ret = $row[0]; mysql_free_result($rs); } return $ret; } function insertAssoc($t, $val, $escape_method = 1) { $qx = array(); foreach($val as $k => $v) { $v = $this->escapeData($v, $escape_method); $qx[] = "`{$k}` = '{$v}'"; } return $this->runQuery("INSERT INTO {$t} SET " . implode(', ', $qx)); } function updateAssoc($t, $val, $id, $pri) { $qx = array(); foreach($val as $k => $v) { $v = $this->escapeData($v); $qx[] = "`{$k}` = '{$v}'"; } return $this->runQuery("UPDATE {$t} SET " . implode(', ', $qx) . " WHERE `{$pri}` = '{$id}'"); } function updateBlind($t, $val) { $qx = array(); foreach($val as $k => $v) { $v = $this->escapeData($v); $qx[] = "`{$k}` = '{$v}'"; } return $this->runQuery("UPDATE {$t} SET " . implode(', ', $qx) ); } function escapeData($c, $escape_method = 1) { $c = trim($c); if($escape_method == 1) { if(!get_magic_quotes_gpc()) $c = addslashes($c); } else { $c = mysql_real_escape_string($c); } return $c; } function mtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function getPri($t) { $rs = $this->runQuery("SHOW COLUMNS FROM `{$t}`"); $ret = @mysql_fetch_assoc($rs); if (is_array($ret)) { $arr_k = array_keys($ret); $arr_v = array_values($ret); for ($i; $i