function db_q3($query) {
global $DB;
if($DB["link"] == "") {
if (!$link = @mysql_pconnect($DB[host], $DB[username], $DB[password])) {
return(FALSE);
} else {
if (!@mysql_select_db($DB[database], $link)) {
return(FALSE);
} else {
//IMPOSTI LINK
$DB["link"] = $link;
}
}
}
if (!$result = @mysql_query($query, $DB["link"])) $result = FALSE;
return $result;
}
//FUNZIONI DB VERSIONE 2.2
function db_err() {
print $err = mysql_errno() . ": " . mysql_error() . "\n";
}
function db_q($query,$database=NULL) {
global $DB;
if($database != NULL) $DB['database'] = $database;
if($DB["link"] == "") {
if (!$link = @mysql_pconnect($DB['host'], $DB['username'], $DB['password'])) {
//d_err("Errore nella connessione a $DB[host]!","p_connect","DATAB");
return FALSE;
} else {
if (!@mysql_select_db($DB['database'], $link)) {
//d_err("Errore nella selezione del DB: $DB[database]
","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;
}
?>