This is a discussion on I resolved that problem... within the PHP Language forums, part of the PHP Programming Forums category; I created two classes Conexion.php and Consulta.php, I show you the code: /* Clase Conexion: Clase encargada de conectarse ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
I created two classes Conexion.php and Consulta.php, I show you the
code: /* Clase Conexion: Clase encargada de conectarse directamente con la base de datos de MySQL. */ class Conexion { var $vinculo; var $resultado; var $sentenciaSQL; /* Función iniciarConexion(): Función para iniciar la conexión con la base de datos. Parámetros: Ninguno. Retorno: TRUE si la conexión se logra correctamente. FALSE si la conexion no se logra correctamente. */ function iniciarConexion() { $this->vinculo = mysql_connect(SISTEMA_HOST.":".SISTEMA_PORT, SISTEMA_USERNAME, SISTEMA_PASSWORD); if ($this->vinculo == false) { return FALSE; exit(); } if (!mysql_select_db(SISTEMA_DATABASE, $this->vinculo)) { return FALSE; exit(); } return TRUE; } /* Función cerrarConexión(): Función para cerrar la conexión con la base de datos. Parámetros: Ninguno. Retorno: TRUE si la desconexion se logra correctamente. FALSE si la desconexión no se logra correctmente. */ function cerrarConexion() { if (!mysql_close($this->vinculo)) { return FALSE; exit(); } return TRUE; } /* Función consultaInternaSQL(): Función para hacer una consulta a la base de datos. Parámetros: Cadena de caracteres con la consulta en SQL. Retorno: TRUE si la consulta se logra correctamente. FALSE si la consulta se logra correctamente. */ function consultaInternaSQL($sql) { $this->sentenciaSQL = $sql; $this->resultado = mysql_query($sql, $this->vinculo); if (!$this->resultado) { return FALSE; exit(); } return TRUE; } /* Función obtenerDatos(): Función para obtener los datos de la consulta SQL realizada. Parámetros: Tipo de asociación de los datos de la consulta: Asociativo, Numérico o Ambos. Retorno: FALSE si la obtencion no resulta satisfactoria. Array con la información de la consulta. */ function obtenerDatos($arrayType = SISTEMA_ASSOC) { if (!$this->resultado) { return FALSE; exit(); } switch ($arrayType) { case SISTEMA_ASSOC: $mysqlArrayType = MYSQL_ASSOC; break; case SISTEMA_NUM: $mysqlArrayType = MYSQL_NUM; break; case SISTEMA_BOTH: $mysqlArrayType = MYSQL_BOTH; break; default: $mysqlArrayType = MYSQL_ASSOC; } $temporal = array(); while ($dato = mysql_fetch_array($this->resultado, $mysqlArrayType)) array_push($temporal, $dato); $datos = array(); while (sizeof($temporal)) array_push($datos, array_pop($temporal)); return $datos; } /* Función numeroTuplasAfectadas(): Función para saber el número de tuplas afectadas por una sentencia INSERT, UPDATE ó DELETE. Parámetros: Ninguno. Retorno: Número de tuplas afectadas. */ function numeroTuplasAfectadas() { return mysql_affected_rows($this->vinculo); } /* Función numeroTuplasResultado(): Función para saber el número de tuplas de un resultado SQL. Parámetros: Ninguno. Retorno: Número de tuplas del resultado. */ function numeroTuplasResultado() { if (stristr($this->sentenciaSQL, "select") OR stristr($this- >sentenciaSQL, "SELECT")) return mysql_num_rows($this->resultado); else return 0; } } And the second class... require_once("Conexion.php"); class Consulta { var $conexion; var $cadenaSQL = ""; var $consulta; function conectar() { $this->conexion = new Conexion(); $this->conexion->iniciarConexion(); } function desconectar() { $this->conexion->cerrarConexion(); unset($this->conexion); } function consultaExternaSQL($sql, $arrayType = SISTEMA_ASSOC) { $this->consulta = NULL; $this->cadenaSQL = $sql; $this->conectar(); $this->conexion->consultaInternaSQL($sql); if ($this->conexion->numeroTuplasResultado() > 0) $this->consulta = $this->obtenerDatos($arrayType); $this->desconectar(); return $this->obtenerResultado(); } function obtenerDatos($arrayType) { return $this->conexion->obtenerDatos($arrayType); } function obtenerResultado() { return $this->consulta; } function obtenerSQL() { return $this->cadenaSQL; } function obtenerSiguienteIdentificadorTabla($nombreTabla) { $consulta = $this->consultaExternaSQL("SELECT max(id) AS maximo FROM ".$nombreTabla.""); $consulta = array_pop($consulta); if (!empty($consulta['maximo'])) return $consulta['maximo'] + 1; else return 1; } } |
|
|||
|
On Nov 27, 9:28 pm, laastos <laas...@gmail.com> wrote:
> I created two classes Conexion.php and Consulta.php, I show you the > code: > > /* > Clase Conexion: > Clase encargada de conectarse directamente con la base de datos de > MySQL. > */ > class Conexion { > var $vinculo; > var $resultado; > var $sentenciaSQL; > > /* > Función iniciarConexion(): > Función para iniciar la conexión con la base de datos. > Parámetros: > Ninguno. > Retorno: > TRUE si la conexión se logra correctamente. > FALSE si la conexion no se logra correctamente. > */ > function iniciarConexion() > { > $this->vinculo = mysql_connect(SISTEMA_HOST.":".SISTEMA_PORT, > SISTEMA_USERNAME, SISTEMA_PASSWORD); > if ($this->vinculo == false) { > return FALSE; > exit(); > } > if (!mysql_select_db(SISTEMA_DATABASE, $this->vinculo)) { > return FALSE; > exit(); > } > return TRUE; > } > > /* > Función cerrarConexión(): > Función para cerrar la conexión con la base de datos. > Parámetros: > Ninguno. > Retorno: > TRUE si la desconexion se logra correctamente. > FALSE si la desconexión no se logra correctmente. > */ > function cerrarConexion() > { > if (!mysql_close($this->vinculo)) { > return FALSE; > exit(); > } > return TRUE; > } > > /* > Función consultaInternaSQL(): > Función para hacer una consulta a la base de datos. > Parámetros: > Cadena de caracteres con la consulta en SQL. > Retorno: > TRUE si la consulta se logra correctamente. > FALSE si la consulta se logra correctamente. > */ > function consultaInternaSQL($sql) > { > $this->sentenciaSQL = $sql; > $this->resultado = mysql_query($sql, $this->vinculo); > if (!$this->resultado) { > return FALSE; > exit(); > } > return TRUE; > } > > /* > Función obtenerDatos(): > Función para obtener los datos de la consulta SQL realizada. > Parámetros: > Tipo de asociación de los datos de la consulta: Asociativo, Numérico > o Ambos. > Retorno: > FALSE si la obtencion no resulta satisfactoria. > Array con la información de la consulta. > */ > function obtenerDatos($arrayType = SISTEMA_ASSOC) > { > if (!$this->resultado) { > return FALSE; > exit(); > } > > switch ($arrayType) { > case SISTEMA_ASSOC: > $mysqlArrayType = MYSQL_ASSOC; > break; > case SISTEMA_NUM: > $mysqlArrayType = MYSQL_NUM; > break; > case SISTEMA_BOTH: > $mysqlArrayType = MYSQL_BOTH; > break; > default: > $mysqlArrayType = MYSQL_ASSOC; > } > > $temporal = array(); > while ($dato = mysql_fetch_array($this->resultado, $mysqlArrayType)) > array_push($temporal, $dato); > > $datos = array(); > while (sizeof($temporal)) array_push($datos, array_pop($temporal)); > > return $datos; > > } > > /* > Función numeroTuplasAfectadas(): > Función para saber el número de tuplas afectadas por una sentencia > INSERT, UPDATE ó DELETE. > Parámetros: > Ninguno. > Retorno: > Número de tuplas afectadas. > */ > function numeroTuplasAfectadas() > { > return mysql_affected_rows($this->vinculo); > } > > /* > Función numeroTuplasResultado(): > Función para saber el número de tuplas de un resultado SQL. > Parámetros: > Ninguno. > Retorno: > Número de tuplas del resultado. > */ > function numeroTuplasResultado() > { > if (stristr($this->sentenciaSQL, "select") OR stristr($this->sentenciaSQL, "SELECT")) > > return mysql_num_rows($this->resultado); > else return 0; > } > > } > > And the second class... > > require_once("Conexion.php"); > > class Consulta { > var $conexion; > var $cadenaSQL = ""; > var $consulta; > > function conectar() { > $this->conexion = new Conexion(); > $this->conexion->iniciarConexion(); > } > > function desconectar() { > $this->conexion->cerrarConexion(); > unset($this->conexion); > } > > function consultaExternaSQL($sql, $arrayType = SISTEMA_ASSOC) { > $this->consulta = NULL; > $this->cadenaSQL = $sql; > $this->conectar(); > $this->conexion->consultaInternaSQL($sql); > if ($this->conexion->numeroTuplasResultado() > 0) $this->consulta = > $this->obtenerDatos($arrayType); > $this->desconectar(); > return $this->obtenerResultado(); > } > > function obtenerDatos($arrayType) { > return $this->conexion->obtenerDatos($arrayType); > } > > function obtenerResultado() { > return $this->consulta; > } > > function obtenerSQL() { > return $this->cadenaSQL; > } > > function obtenerSiguienteIdentificadorTabla($nombreTabla) { > $consulta = $this->consultaExternaSQL("SELECT max(id) ASmaximo FROM > ".$nombreTabla.""); > $consulta = array_pop($consulta); > if (!empty($consulta['maximo'])) return $consulta['maximo'] + 1; > else return 1; > } > > } hm? -- Kailash Nadh | http://kailashnadh.name |