From e1151343bddcd586995239411226c11dfcd0b766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana=20G=C3=B3mez?= Date: Wed, 24 Apr 2024 11:37:10 +0200 Subject: [PATCH] Fix charset view problem --- Sql.php | 168 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 86 insertions(+), 82 deletions(-) diff --git a/Sql.php b/Sql.php index 63e60fd..4abf993 100644 --- a/Sql.php +++ b/Sql.php @@ -1,55 +1,57 @@ - * @version 1.0 - * @package Inventario - * @copyright Copyright (c) 2008, Ricardo Montañana Gómez - * @license http://www.gnu.org/licenses/gpl-3.0.txt - * This file is part of Inventario. - * Inventario is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Inventario 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Inventario. If not, see . - * - */ -class Sql { + +/** + * Gestión de una base de datos MySQL + * @author Ricardo Montañana + * @version 1.0 + * @package Inventario + * @copyright Copyright (c) 2008, Ricardo Montañana Gómez + * @license http://www.gnu.org/licenses/gpl-3.0.txt + * This file is part of Inventario. + * Inventario is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Inventario 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Inventario. If not, see . + * + */ +class Sql +{ /** * @var mixed Manejador de la base de datos. */ - private $bdd=NULL; + private $bdd = NULL; /** * @var string Mensaje del último mensaje de error generado */ - private $mensajeError=''; + private $mensajeError = ''; /** * @var boolean Almacena el estado de error o no de la última acción. */ - private $error=false; + private $error = false; /** * @var boolean Estado de la conexión con la base de datos. */ - private $estado=false; + private $estado = false; /** * @var mixed Objeto que alberga la última consulta ejecutada. */ - private $peticion=NULL; + private $peticion = NULL; /** * @var integer Número de tuplas afectadas en la última consulta. */ - private $numero=0; + private $numero = 0; /** * @var string vector de cadenas con los resultados de la petición. */ - private $datos=array(); + private $datos = array(); /** * Id del último registro insertado * @var integer mysql_ @@ -61,20 +63,21 @@ class Sql { * @param string $usuario * @param string $baseDatos */ - public function __construct($servidor,$usuario,$clave,$baseDatos) + public function __construct($servidor, $usuario, $clave, $baseDatos) { - $this->bdd = @new mysqli($servidor,$usuario,$clave,$baseDatos); + $this->bdd = @new mysqli($servidor, $usuario, $clave, $baseDatos); if (mysqli_connect_errno()) { - $this->mensajeError='

Fallo al conectar con el servidor MySQL.

'; - $this->mensajeError.="Servidor [".$servidor ."] base de datos [".$baseDatos."]"; - $this->error=true; - $this->estado=false; + $this->mensajeError = '

Fallo al conectar con el servidor MySQL.

'; + $this->mensajeError .= "Servidor [" . $servidor . "] base de datos [" . $baseDatos . "]"; + $this->error = true; + $this->estado = false; } else { - $this->mensajeError=''; - $this->error=false; - $this->estado=true; + $this->mensajeError = ''; + $this->error = false; + $this->estado = true; } - $this->peticion=NULL; + $this->peticion = NULL; + $this->bdd->set_charset("latin1"); return $this; } public function __destruct() @@ -88,68 +91,69 @@ class Sql { $this->bdd->close(); } } - public function filtra($cadena) + public function filtra($cadena) { - return $this->bdd->real_escape_string($cadena); + return $this->bdd->real_escape_string($cadena); } public function ejecuta($comando) { if (!$this->estado) { - $this->error=true; - $this->mensajeError='No está conectado'; + $this->error = true; + $this->mensajeError = 'No está conectado'; return false; } - - if (!$this->peticion=$this->bdd->query($comando)) { - $this->error=true; - $this->mensajeError='No pudo ejecutar la petición: '.$comando; + + if (!$this->peticion = $this->bdd->query($comando)) { + $this->error = true; + $this->mensajeError = 'No pudo ejecutar la petición: ' . $comando; return false; } - $this->numero=$this->bdd->affected_rows; - $this->id=$this->bdd->insert_id; - $this->error=false; - $this->mensajeError=''; + $this->numero = $this->bdd->affected_rows; + $this->id = $this->bdd->insert_id; + $this->error = false; + $this->mensajeError = ''; return true; } public function procesaResultado() { if (!$this->estado) { - $this->error=true; - $this->mensajeError='No está conectado a una base de datos'; + $this->error = true; + $this->mensajeError = 'No está conectado a una base de datos'; return NULL; } if (!$this->peticion) { - $this->error=true; - $this->mensajeError='No hay un resultado disponible'; + $this->error = true; + $this->mensajeError = 'No hay un resultado disponible'; return NULL; } - $datos=$this->peticion->fetch_assoc(); - $this->error=false; - $this->mensajeError=''; + $datos = $this->peticion->fetch_assoc(); + $this->error = false; + $this->mensajeError = ''; return ($datos); } - public function camposResultado() + public function camposResultado() { if (!$this->estado) { - $this->error=true; - $this->mensajeError='No está conectado a una base de datos'; + $this->error = true; + $this->mensajeError = 'No está conectado a una base de datos'; return NULL; } if (!$this->peticion) { - $this->error=true; - $this->mensajeError='No hay un resultado disponible'; + $this->error = true; + $this->mensajeError = 'No hay un resultado disponible'; return NULL; } - $datos=$this->peticion->fetch_field(); - $this->error=false; - $this->mensajeError=''; + $datos = $this->peticion->fetch_field(); + $this->error = false; + $this->mensajeError = ''; return ($datos); } /** * Devuelve el número de tuplas afectadas en la última petición. * @return integer Número de tuplas. */ - public function numeroTuplas() { + public function numeroTuplas() + { return $this->numero; } /** @@ -157,30 +161,32 @@ class Sql { * con SELECT SQL_CALC_FOUND_ROWS * ... * @return integer Número de tuplas. */ - public function numeroTotalTuplas() + public function numeroTotalTuplas() { $comando = "select found_rows();"; - if (!$peticion=$this->bdd->query($comando)) { - $this->error=true; - $this->mensajeError='No pudo ejecutar la petición: '.$comando; + if (!$peticion = $this->bdd->query($comando)) { + $this->error = true; + $this->mensajeError = 'No pudo ejecutar la petición: ' . $comando; return false; } $numero = $peticion->fetch_row(); - return $numero[0] ; + return $numero[0]; } /** * Devuelve la condición de error de la última petición * @return boolean condición de error. */ - public function error() { + public function error() + { return $this->error; } /** * Devuelve el mensaje de error de la última petición * @return */ - public function mensajeError() { - return $this->mensajeError.$this->bdd->error; + public function mensajeError() + { + return $this->mensajeError . $this->bdd->error; } /** * Devuelve la estructura de campos de una tabla. @@ -192,12 +198,12 @@ class Sql { if ($this->peticion) { $this->peticion->free_result(); } - $comando="show full columns from $tabla"; + $comando = "show full columns from $tabla"; if (!$this->ejecuta($comando)) { return false; } - while ($dato=$this->procesaResultado()) { - $salida[]=$dato; + while ($dato = $this->procesaResultado()) { + $salida[] = $dato; } return $salida; } @@ -217,7 +223,7 @@ class Sql { { $codigo = $this->bdd->rollback(); $this->bdd->autocommit(true); - return $codigo; + return $codigo; } public function confirmaTransaccion() { @@ -227,5 +233,3 @@ class Sql { return $codigo; } } - -?>