<?php ################################################################################## # HOTELDRUID # Copyright (C) 2001-2023 by Marco Maria Francesco De Santis (marco@digitaldruid.net) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version accepted by Marco Maria Francesco De Santis, which # shall act as a proxy as defined in Section 14 of version 3 of the # license. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. ################################################################################## #Funzioni per usare il database MYSQL con estensioni mysqli ignore_user_abort(1); # variabili per le differenze nella sintassi delle query #global $ILIKE,$LIKE; $ILIKE = "LIKE"; $LIKE = "LIKE BINARY"; $DATETIME = "datetime"; $MEDIUMTEXT = "mediumtext"; unset($link_mysqli); function connetti_db ($database,$host,$port,$user,$password,$estensione) { global $link_mysqli; if ($estensione == "SI") dl("mysqli.so"); $link_mysqli = mysqli_connect($host,$user,$password,$database,$port); if ($link_mysqli) @mysqli_query($link_mysqli,"SET NAMES 'utf8mb4'"); return $link_mysqli; } # fine function connetti_db function disconnetti_db (&$numconnessione) { $risul = mysqli_close($numconnessione); return $risul; } # fine function disconnetti_db if (substr($PHPR_LOG,0,2) != "SI") { function esegui_query ($query,$silenzio = "",$idlog = "") { global $link_mysqli; $risul[-1] = mysqli_query($link_mysqli,$query); $risul[-2] = -1; if (!$risul[-1]) { # bug mariadb: temporary table already existing when adding a column if (strtolower(substr($query,0,12)) == "alter table " or strtolower(substr($query,0,15)) == "alter database ") { sleep(1); $risul[-1] = mysqli_query($link_mysqli,$query); } # fine if (strtolower(substr($query,0,12)) == "alter table " or strtolower(substr($query,0,15)) == "alter database ") if (!$risul[-1]) { $risul = $risul[-1]; if ($silenzio != "totale") { global $PHPR_TAB_PRE; if (!$silenzio) echo "<br>ERROR IN: ".htmlspecialchars(str_replace(" ".$PHPR_TAB_PRE," ",$query))." <br>".htmlspecialchars(mysqli_errno($link_mysqli).": ".mysqli_error($link_mysqli))."<br>"; error_log("IN ".$_SERVER['PHP_SELF']." MYSQL ERROR: ".substr(str_replace(" ".$PHPR_TAB_PRE," ",$query),0,25)."... - ".mysqli_errno($link_mysqli).": ".mysqli_error($link_mysqli)); } # fine if ($silenzio != "totale") } # fine if (!$risul[-1]) } # fine if (!$risul[-1]) return $risul; } # fine function esegui_query } # fine if (substr($PHPR_LOG,0,2) != "SI") else { if (!function_exists("inserisci_log")) include("./includes/funzioni_log.php"); function esegui_query ($query,$silenzio = "",$idlog = "") { global $link_mysqli; $risul[-1] = mysqli_query($link_mysqli,$query); $risul[-2] = -3; if (!$risul[-1]) { # bug mariadb: temporary table already existing when adding a column if (strtolower(substr($query,0,12)) == "alter table ") { sleep(1); $risul[-1] = mysqli_query($link_mysqli,$query); } # fine if (strtolower(substr($query,0,12)) == "alter table ") if (!$risul[-1]) { $risul = $risul[-1]; if ($silenzio != "totale") { global $PHPR_TAB_PRE; if (!$silenzio) echo "<br>ERROR IN: ".htmlspecialchars(str_replace(" ".$PHPR_TAB_PRE," ",$query))." <br>".htmlspecialchars(mysqli_errno($link_mysqli).": ".mysqli_error($link_mysqli))."<br>"; error_log("IN ".$_SERVER['PHP_SELF']." MYSQL ERROR: ".substr(str_replace(" ".$PHPR_TAB_PRE," ",$query),0,25)."... - ".mysqli_errno($link_mysqli).": ".mysqli_error($link_mysqli)); } # fine if ($silenzio != "totale") } # fine if (!$risul[-1]) } # fine if (!$risul[-1]) if ($idlog != 1) inserisci_log($query,$idlog); return $risul; } # fine function esegui_query } # fine else if (substr($PHPR_LOG,0,2) != "SI") function risul_query (&$query,$riga,$colonna,$tab="") { /* # version that uses too much memory ($query stores each line) if (!$query[$riga]) { if ($query[-2] != ($riga - 1)) mysqli_data_seek($query[-1],$riga); $query[$riga] = mysqli_fetch_array($query[-1]); $query[-2] = $riga; #if (!$risul) echo "<br>Nessun risultato in riga $riga colonna $colonna<br>"; } # fine if (!$query[$riga]) return $query[$riga][$colonna]; */ if ($query[-2] != $riga) { if ($query[-2] != ($riga - 1)) mysqli_data_seek($query[-1],$riga); $query[1] = mysqli_fetch_array($query[-1]); $query[-2] = $riga; #if (!$risul) echo "<br>Nessun risultato in riga $riga colonna $colonna<br>"; } # fine if ($query[-2] != $riga) return $query[1][$colonna]; } # fine function risul_query function numlin_query ($query) { $risul = mysqli_num_rows($query[-1]); return $risul; } # fine function numlin_query function aggslashdb ($stringa) { $risul = addslashes((string) $stringa); return $risul; } # fine function aggslashdb function arraylin_query (&$query,$num) { if ($query[-2] != ($num - 1)) mysqli_data_seek($query[-1],$num); $risul = mysqli_fetch_row($query[-1]); $query[-2] = $num; return $risul; } # fine function arraylin_query function numcampi_query ($query) { $risul = mysqli_num_fields($query[-1]); return $risul; } # fine function numcampi_query function nomecampo_query ($query,$num) { $risul = mysqli_fetch_field_direct($query[-1],$num); return $risul->name; } # fine function nomecampo_query function tipocampo_query ($query,$num) { $risul = mysqli_fetch_field_direct($query[-1],$num); return $risul->type; } # fine function tipocampo_query function dimcampo_query ($query,$num) { $risul = mysqli_fetch_field_direct($query[-1],$num); return $risul->max_length; } # fine function dimcampo_query function chiudi_query (&$query) { mysqli_free_result($query[-1]); $query = array(); } # fine function chiudi_query function lock_tabelle ($tabelle,$altre_tab_usate = "") { $lista_tabelle = ""; if (@is_array($tabelle)) { for ($num1 = 0 ; $num1 < count($tabelle); $num1++) { $lista_tabelle .= $tabelle[$num1]." write,"; } # fine for $num1 } # fine if (@is_array($tabelle)) if (@is_array($altre_tab_usate)) { for ($num1 = 0 ; $num1 < count($altre_tab_usate); $num1++) { $lista_tabelle .= $altre_tab_usate[$num1]." read,"; } # fine for $num1 } # fine if (@is_array($altre_tab_usate)) $lista_tabelle = substr($lista_tabelle,0,-1); global $link_mysqli; $risul = mysqli_query($link_mysqli,"lock tables $lista_tabelle"); if (!$risul) { echo "<br>ERROR IN: lock tables ".htmlspecialchars($lista_tabelle)."<br>".htmlspecialchars(mysqli_errno($link_mysqli).": ".mysqli_error($link_mysqli))."<br>"; error_log("IN ".$_SERVER['PHP_SELF']." MYSQL ERROR: lock tables $lista_tabelle - ".mysqli_errno($link_mysqli).": ".mysqli_error($link_mysqli)); } # fine if (!$risul) return $risul; } # fine function lock_tabelle function unlock_tabelle (&$tabelle_lock,$azione = "") { global $link_mysqli; $risul = mysqli_query($link_mysqli,"unlock tables"); $tabelle_lock = null; } # fine function unlock_tabelle function crea_indice ($tabella,$colonne,$nome) { global $link_mysqli; mysqli_query($link_mysqli,"alter table $tabella add index $nome ($colonne)"); } # fine function crea_indice ?> |