I resolved that problem...

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 ...


Go Back   Usenet Forums > PHP Programming Forums > PHP Language

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 11-27-2007
laastos
 
Posts: n/a
Default I resolved that problem...

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;
}

}
Reply With Quote
  #2 (permalink)  
Old 11-27-2007
Kailash Nadh
 
Posts: n/a
Default Re: I resolved that problem...

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
Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT +1. The time now is 10:02 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0