trigger_error("chi usa questo file?", E_USER_ERROR);//carlo function db_q3($query) { global $DB; if($DB["link"] == "") { if (!$link = @mysql_connect($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() { global $DB; print $err = mysql_errno($DB["link"]) . ": " . mysql_error($DB["link"]) . "\n"; } function db_insert_id() { global $DB; return mysql_insert_id($DB["link"]); } 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: $DB[database]","nome"=>"query","gruppo"=>"INDI")), E_USER_WARNING); return; } */ if($DB["link"] == "") { $link = mysql_connect($DB['host'], $DB['username'], $DB['password']); if (!$link) { $GLOBALS['CONF']['force_no_redirect'] = "SI"; trigger_error(serialize(array("errore"=>"Errore nella connessione: ".mysql_error(),"nome"=>"query","gruppo"=>"INDI")), E_USER_WARNING); return FALSE; } if ($DB['database'] and !@mysql_select_db($DB['database'], $link)) { $GLOBALS['CONF']['force_no_redirect'] = "SI"; trigger_error(serialize(array("errore"=>"Errore nella selezione del database :".mysql_error(),"nome"=>"query","gruppo"=>"INDI")), E_USER_WARNING); return FALSE; } else { //metto il link globale solo se c'e' il database o l' opzione esplicita no-link if($DB['database']) $DB["link"] = $link; if($GLOBALS["CONF"]["DEBUG"] == "SI") 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); } } } else { $link = $DB["link"]; } if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time(); //nocache if($_GET['no_cache'] || $_GET['no_sql_cache']) { $query = str_replace("SELECT","SELECT SQL_NO_CACHE",$query); } //risultato $result = mysql_query($query, $link); if (!$result) { $err = mysql_errno($link) . ": " . mysql_error($link) . ": Query: \n$query\n"; //CARLO 17/5/10: aggiunto perchè altrimenti non si riceve NESSUN errore delle query online if(mysql_errno($link) != 1062){//escludo i "Duplicate entry" if($_GET['dbg'] && $GLOBALS["CONF"]['dove_sono'] == 'rem' && error_reporting()){ echo mysql_errno($link) . ": " . mysql_error($link) . '
debug_backtrace:'; } 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; } //forza utf8 function db_q_utf8($query) { global $DB; //salvo $charset_old = $GLOBALS['CONF']['mcharset']; $GLOBALS['CONF']['mcharset'] = "UTF-8"; $q = db_q($query); //ripristino $GLOBALS['CONF']['mcharset'] = $charset_old; return $q; } //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); if($q) { $riga = mysql_fetch_assoc($q); //mysql_free_result($q); return $riga; } else { return false; } } function db_qr_cache($query) { global $DB; if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time(); //cache apc if($GLOBALS["DATI"]["indi_apc"] == "SI" && !$GLOBALS["DATI"]["disable_db_cache"] && !$_GET['no_db_cache'] && !$_GET['no_cache']) { //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); if($q) { $result = mysql_fetch_assoc($q); 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"); } //mysql_free_result($q); return $result; } else { return false; } } } else { 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 db_qr($query); } } //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); if($q) { while ($riga = mysql_fetch_assoc($q)) { $a = $riga[$chiave]; //print "+$a+"; if($chiave != NULL) $array["$a"] = $riga; else $array[] = $riga; } //mysql_free_result($q); return $array; } else { return false; } } //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" && !$GLOBALS["DATI"]["disable_db_cache"] && !$_GET['no_db_cache'] && !$_GET['no_cache']) { //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); if($q) { while ($riga = mysql_fetch_assoc($q)) { $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"); } //mysql_free_result($q); return $array; } else { return false; } } } 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 db_qa($query,$chiave); } //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_assoc($q)) { $a = $riga[$chiave]; //print "+$a+"; if($chiave) $array["$a"] = $riga; else $array[] = $riga; } //mysql_free_result($q); 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); if($q) { $riga = mysql_fetch_array($q); //mysql_free_result($q); return $riga[$campo]; } else { return false; } } function db_qrs_cache($query,$campo=0) { global $DB; if($GLOBALS["CONF"]["DEBUG"] == "SI") $db_time = indi_time(); if($GLOBALS["DATI"]["indi_apc"] == "SI" && !$GLOBALS["DATI"]["disable_db_cache"] && !$_GET['no_db_cache'] && !$_GET['no_cache']) { //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); if($q) { $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"); } //mysql_free_result($q); return $riga[$campo]; } else { return false; } } } 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 db_qrs($query,$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_assoc($q)) { $out[] = $funzione($V); } //mysql_free_result($q); 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_assoc($q)) { $a = $riga[$campo]; //print "+$a+"; $out .= $a.$sep; } //mysql_free_result($q); 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" && !$GLOBALS["DATI"]["disable_db_cache"] && !$_GET['no_db_cache'] && !$_GET['no_cache']) { //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($q) { if(is_array($ARR)) $out = $ARR; while ($riga = mysql_fetch_assoc($q)) { $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"); } //mysql_free_result($q); return $out; } else { return false; } } } 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"); } return db_qkv($query,$kk,$vv,$ARR); } //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($q) { if(is_array($ARR)) $out = $ARR; while ($riga = mysql_fetch_array($q)) { $k = $riga["$kk"]; $v = $riga["$vv"]; //print "+$a+"; $out[$k] = $v; } //mysql_free_result($q); return $out; } else { return false; } } function db_restore_dump($filename){ $templine = ''; $lines = file($filename); foreach ($lines as $line){ if (substr($line, 0, 2) == '--' || $line == '') continue; $templine .= $line; if (substr(trim($line), -1, 1) == ';'){ db_q($templine); $templine = ''; } } } function db_create_db($nome, $charset=null){ db_connect_only();//credenziali db_q("CREATE DATABASE IF NOT EXISTS ".$nome.($charset?" CHARACTER SET $charset":"")); return db_connect();//seleziona db } function db_connect_only(){ global $DB; $DB['link'] = mysql_connect($DB['host'], $DB['username'], $DB['password']); return $DB['link']; } function db_connect($tipo="link") { global $DB; if (!$link = mysql_connect($DB[host], $DB[username], $DB[password])) { return false; $result = 0; print ("
'; debug_print_backtrace(); echo '