","select_db","DATAB"); return FALSE; } else { //IMPOSTI LINK $DB["link"] = $link; //d_info("Collegato al DB: $DB[database]","connect","DATAB"); } } } if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time(); //nocache if($_GET['sql_no_cache'] == 1) { $query = str_replace("SELECT","SELECT SQL_NO_CACHE",$query); } //risultato $result = @mysql_query($query, $DB["link"]); if (!$result) { $err = mysql_errno() . ": " . mysql_error() . "\n"; d_err("$err --> $query <--","query","DATAB"); return FALSE; } else { //calcolo tempo if($GLOBALS["CONF"]["DEBUG"] == "SI") { $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("$query","db:query(QT:$TIME)","DATAB"); } return $result; } return FALSE; } //FUNZIONI DB VERSIONE 2.2 function db_q_indi($query) { return db_q($query,"indi"); } //ritorna una array delle righe function db_crea($database) { global $DB; if (!$link = @mysql_pconnect($DB[host], $DB[username], $DB[password])) { $result = FALSE; d_err("Errore nella connessione a $DB[host]!","pconnect","DATAB"); } $out = mysql_create_db("$database"); return $out; } //ritorna una sola riga || memcache function db_qr($query) { global $DB,$memcache; if($memcache and $GLOBALS["DATI"]['indi_memcache_all_query'] == "SI") { //memcache $key = md5("db_qr".$query); if ($memcache->get($key)) { if($_GET['memcache']) print "k"; return $memcache->get($key); } else { $q = db_q($query); $result = @mysql_fetch_array($q,MYSQL_ASSOC); $memcache->set($key, $result, FALSE,$GLOBALS["DATI"]['indi_memcache_time']); return $result; } } else { $q = db_q($query); return @mysql_fetch_array($q,MYSQL_ASSOC); } return $riga; } function db_qr_cache($query) { global $DB,$memcache; if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time(); elseif($memcache) { //memcache $key = "db_qr_cache:".md5($query.$GLOBALS["id_pagina"]); if ($mk = $memcache->get($key)) { if($_GET['memcache']) print "k"; if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:OUT:db_qr_cache(QT:$TIME)","DATAB"); } return $mk['a']; } else { $q = db_q($query); $result = @mysql_fetch_array($q,MYSQL_ASSOC); $memcache->set($key,(array) array("a"=>$result), FALSE,$GLOBALS["DATI"]['indi_memcache_time']); if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:IN:db_qr_cache(QT:$TIME)","DATAB"); } return $result; } } else { $q = db_q($query); if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:KO:db_qr_cache(QT:$TIME)","DATAB"); } return @mysql_fetch_array($q,MYSQL_ASSOC); } return $riga; } //ritorna una array delle righe function db_qa($query,$chiave=NULL) { global $DB,$memcache; if($memcache and $GLOBALS["DATI"]['indi_memcache_all_query'] == "SI") { //memcache $key = md5("db_qa".$query.$chiave); if ($memcache->get($key)) { if($_GET['memcache']) print "k"; return $memcache->get($key); } else { $q = db_q($query); while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) { $a = $riga[$chiave]; if($chiave) $array["$a"] = $riga; else $array[] = $riga; } $memcache->set($key, $array, FALSE, $GLOBALS["DATI"]['indi_memcache_time']); return $array; } } $q = db_q($query); while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) { $a = $riga[$chiave]; //print "+$a+"; if($chiave) $array["$a"] = $riga; else $array[] = $riga; } return $array; } //ritorna una array delle righe function db_qa_cache($query,$chiave=NULL) { if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time(); global $DB,$memcache; if($memcache) { //memcache $key = "db_qa_cache:".md5($query.$chiave.$GLOBALS["id_pagina"]); if ($memcache->get($key)) { if($_GET['memcache']) print "k"; if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:OUT:db_qa_cache(QT:$TIME)","DATAB"); } return $memcache->get($key); } else { $q = db_q($query); while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) { $a = $riga[$chiave]; if($chiave) $array["$a"] = $riga; else $array[] = $riga; } $memcache->set($key, $array, FALSE, $GLOBALS["DATI"]['indi_memcache_time']); if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:IN:db_qa_cache(QT:$TIME)","DATAB"); } return $array; } } $q = db_q($query); while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) { $a = $riga[$chiave]; //print "+$a+"; if($chiave) $array["$a"] = $riga; else $array[] = $riga; } if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:KO:db_qa_cache(QT:$TIME)","DATAB"); } return $array; } //ritorna una array delle righe function db_qa_indi($query,$chiave=NULL) { if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time1 = indi_time(); global $DB; $q = db_q($query,"indi"); while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) { $a = $riga[$chiave]; //print "+$a+"; if($chiave) $array["$a"] = $riga; else $array[] = $riga; } return $array; } function db_qrs($query,$campo=0) { global $DB,$memcache; if($memcache and $GLOBALS["DATI"]['indi_memcache_all_query'] == "SI") { //memcache $key = md5("db_qrs".$query.$campo); if ($mk = $memcache->get($key)) { if($_GET['memcache']) print "k"; return $mk[a]; } else { $q = db_q($query); $riga = @mysql_fetch_array($q); $memcache->set($key, (array) array("a" => $riga[$campo]), FALSE, $GLOBALS["DATI"]['indi_memcache_time']); return $riga[$campo]; } } $q = db_q($query); $riga = @mysql_fetch_array($q); return $riga[$campo]; } function db_qrs_cache($query,$campo=0) { global $DB,$memcache; if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time(); if($memcache) { //memcache $key = "db_qrs_cache:".md5($query.$campo.$GLOBALS["id_pagina"]); if ($mk = $memcache->get($key)) { if($_GET['memcache']) print "k"; if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:OUT:db_qrs_cache($key, ".$GLOBALS["DATI"]['indi_memcache_time'].")(QT:$TIME)","DATAB"); } return $mk['b']; } else { $q = db_q($query); $riga = @mysql_fetch_array($q); $arr["b"] = $riga[$campo]; $memcache->set($key, (array) $arr, FALSE, $GLOBALS["DATI"]['indi_memcache_time']); if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:IN:db_qrs_cache($key, ".$GLOBALS["DATI"]['indi_memcache_time'].")(QT:$TIME)","DATAB"); } return $riga[$campo]; } } $q = db_q($query); $riga = @mysql_fetch_array($q); if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info("","memcache:KO:db_qrs_cache(".$GLOBALS["DATI"]['indi_memcache_time'].")(QT:$TIME)","DATAB"); } return $riga[$campo]; } function db_qf($query,$funzione="db_qf_array") { //funzione di base function db_qf_array($V){ return $V; } global $DB; $q = db_q($query); while ($V = @mysql_fetch_array($q,MYSQL_ASSOC)) { $out[] = $funzione($V); } return $out; } //queri con risultati separati da un separatore function db_qsep($query,$campo,$sep="|") { global $DB; $q = db_q($query); while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) { $a = $riga[$campo]; //print "+$a+"; $out .= $a.$sep; } return $out; } //queri con risultati in un array chiave valore function db_qkv($query,$kk,$vv,$ARR=NULL) { global $DB; $q = db_q($query); if(is_array($ARR)) $out = $ARR; while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) { $k = $riga["$kk"]; $v = $riga["$vv"]; //print "+$a+"; $out[$k] = $v; } return $out; } function db_connect() { global $DB; if (!$DB[link] = @mysql_pconnect($DB[host], $DB[username], $DB[password])) { $result = 0; print ("
Errore nella connessione a $db_host!"); } else { if (!@mysql_select_db($DB[database], $DB[link])) { $result = 0; print ("
Errore nella selezione del
"); } } } function db_connect2() { global $db, $var_Global; $db = mysql_connect($var_Global["db_host"], $var_Global["db_username"], $var_Global["db_password"]); if (!$db) die("Impossibile collegarsi al database\n"); if (!mysql_select_db($var_Global["db_nome"], $db)) die("Impossibile selezionare il database\n"); } function db_query($sql,$msg="") { global $DB; $res = @mysql_query($sql, $DB[link]); if(!$res) { print "
ERRORE: ".mysql_error()." query SQL: [ $sql ]"; if($msg){ echo " - $msg
"; die(); } } return $res; } function db_lastid($tabella,$campo) { global $DB; $res=db_query("select $campo from $tabella order by $campo desc limit 1","Impossibile selezionare l'ultimo id"); list($lastid) = mysql_fetch_row($res); return $lastid + 1; } function db_appendi_condizioni_sql($sql, $condizioni) { //se esiste, ciclo l'array delle condizioni e l'appendo alla query if(is_array($condizioni)) { $tot = sizeof($condizioni); for ($i=0; $i<$tot; $i++) { if ($i==0) { $sql .= "where "; } $sql .= $condizioni[$i]; if ($i<($tot-1)) { $sql .= " and "; } } } return $sql; } function db_cerca_parola($parola) { if(trim($parola) != "") return "'%$parola%'"; } //crea la WHERE per cercare una parola composta //da finire gli altri tipi //ricordarsi se gpc di fare l' escape e togliere gli slash function db_cerca_parola_like($parola,$campo,$verso="ALL") { $parola = trim(mysql_real_escape_string($parola)); if($parola == "") return NULL; $query_raw_arr = explode(" ", $parola); $q .= "("; for ($i=0; $i 0) $q .= " OR "; if($verso == "ALL") $q .= "$campo LIKE '%".$query_raw_arr[$i]."%'"; elseif($verso == "SX") $q .= "$campo LIKE '%".$query_raw_arr[$i]."%'"; elseif($verso == "DX") $q .= "$campo LIKE '%".$query_raw_arr[$i]."%'"; } $q .= ")"; return $q; } ?>