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['database']){
trigger_error(serialize(array("errore"=>"Non è stato settato il database","nome"=>"query","gruppo"=>"INDI")), E_USER_WARNING);
return;
}
if($DB["link"] == "") {
if (!$link = @mysql_connect($DB['host'], $DB['username'], $DB['password'])) {
$GLOBALS['CONF']['force_no_redirect'] = "SI";
trigger_error(serialize(array("errore"=>"Errore nella connessione a $DB[host]","nome"=>"query","gruppo"=>"INDI")), E_USER_WARNING);
return FALSE;
} else if (!@mysql_select_db($DB['database'], $link)) {
$GLOBALS['CONF']['force_no_redirect'] = "SI";
trigger_error(serialize(array("errore"=>"Errore nella selezione del database $DB[database]","nome"=>"query","gruppo"=>"INDI")), E_USER_WARNING);
return FALSE;
} else {
$DB["link"] = $link;
d_info("Collegato al DB: $DB[database]","connect","DATAB");
//caratteri UTF8
if($GLOBALS['CONF']['mcharset'] == "UTF-8") {
//mysql_query("SET CHARACTER_SET_RESULTS=utf8",$link);
//mysql_query("SET character_set_client=utf8",$link);
//mysql_query("SET character_set_connection=utf8",$link);
// mysql_query("SET NAMES 'utf8'",$link);
mysql_query("SET CHARACTER SET 'utf8'",$link);
}
}
}
if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time();
//nocache
if($_GET['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$query\n";
d_err($err,"query","DATAB");
//errore
/*
if($GLOBALS["CONF"]["dove_sono"] == "loc") {
$GLOBALS['CONF']['force_no_redirect'] = "SI";
trigger_error(serialize(array("errore"=>$err,"nome"=>"query","gruppo"=>"INDI")), E_USER_WARNING);
}
*/
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 || apc
function db_qr($query) {
global $DB;
if($GLOBALS["DATI"]['indi_apc_all_query'] == "SI") {
return db_qr_cache($query);
}
$q = db_q($query);
return @mysql_fetch_array($q,MYSQL_ASSOC);
return $riga;
}
function db_qr_cache($query) {
global $DB;
if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time();
//cache apc
if($GLOBALS["DATI"]["indi_apc"] == "SI") {
//apc
$key = "db_qr_cache:".md5($query);
$mk = apc_fetch($key);
if ($mk) {
if($_GET['indi_apc']) print "k";
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:OUT:db_qr_cache(QT:$TIME)","DATAB");
}
return unserialize($mk);
} else {
$q = db_q($query);
$result = @mysql_fetch_array($q,MYSQL_ASSOC);
apc_store($key,serialize($result),$GLOBALS["DATI"]['indi_apc_time']);
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc: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("","apc: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;
if($GLOBALS["DATI"]['indi_apc_all_query'] == "SI") {
return db_qa_cache($query,$chiave);
}
$q = db_q($query);
while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) {
$a = $riga[$chiave];
//print "+$a+";
if($chiave != NULL) $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;
if($GLOBALS["DATI"]["indi_apc"] == "SI") {
//apc
$key = "db_qa_cache:".md5($query.$chiave);
$mk = apc_fetch($key);
if ($mk) {
if($_GET['indi_apc']) print "k";
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:OUT:$key(QT:$TIME)","DATAB");
}
return unserialize($mk);
} else {
$q = db_q($query);
while ($riga = @mysql_fetch_array($q,MYSQL_ASSOC)) {
$a = $riga[$chiave];
if($chiave != NULL) $array["$a"] = $riga;
else $array[] = $riga;
}
apc_store($key, serialize($array), $GLOBALS["DATI"]['indi_apc_time']);
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:IN:$key(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("","apc: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;
if($GLOBALS["DATI"]['indi_apc_all_query'] == "SI") {
return db_qrs_cache($query,$campo);
}
$q = db_q($query);
$riga = @mysql_fetch_array($q);
return $riga[$campo];
}
function db_qrs_cache($query,$campo=0) {
global $DB;
if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time();
if($GLOBALS["DATI"]["indi_apc"] == "SI") {
//apc
$key = "db_qrs_cache:".md5($query.$campo);
$mk = apc_fetch($key);
if ($mk) {
if($_GET['indi_apc']) print "k";
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:OUT:db_qrs_cache($key, ".$GLOBALS["DATI"]['indi_apc_time'].")(QT:$TIME)","DATAB");
}
return $mk;
} else {
$q = db_q($query);
$riga = @mysql_fetch_array($q);
apc_store($key, $riga[$campo], $GLOBALS["DATI"]['indi_apc_time']);
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:IN:db_qrs_cache($key, ".$GLOBALS["DATI"]['indi_apc_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("","apc:KO:db_qrs_cache(".$GLOBALS["DATI"]['indi_apc_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_cache($query,$kk,$vv,$ARR=NULL) {
global $DB;
if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time();
if($GLOBALS["DATI"]["indi_apc"] == "SI") {
//apc
$key = "db_qkv_cache:".md5($query.$kk.$vv);
$mk = apc_fetch($key);
if ($mk) {
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:OUT:db_qkv_cache($key, ".$GLOBALS["DATI"]['indi_apc_time'].")(QT:$TIME)","DATAB");
}
return $mk;
} else {
$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;
}
apc_store($key,$out, $GLOBALS["DATI"]['indi_apc_time']);
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:IN:db_qrs_cache($key, ".$GLOBALS["DATI"]['indi_apc_time'].")(QT:$TIME)","DATAB");
}
return $out;
}
}
if($GLOBALS["CONF"]["DEBUG"] == "SI") {
//debug
$db_time2 = indi_time();
$TIME = $db_time2 - $db_time;
d_info("","apc:KO:db_qkv_cache(".$GLOBALS["DATI"]['indi_apc_time'].")(QT:$TIME)","DATAB");
}
$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;
}
//queri con risultati in un array chiave valore
function db_qkv($query,$kk,$vv,$ARR=NULL) {
global $DB;
if($GLOBALS["DATI"]['indi_apc_all_query'] == "SI") {
return db_qkv_cache($query,$kk,$vv,$ARR);
}
$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;
}
?>