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(S ISTEMA_HOST.":" .SISTEMA_PORT,
SISTEMA_USERNAM E, SISTEMA_PASSWOR D);
if ($this->vinculo == false) {
return FALSE;
exit();
}
if (!mysql_select_ db(SISTEMA_DATA BASE, $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 consultaInterna SQL():
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 consultaInterna SQL($sql)
{
$this->sentenciaSQL = $sql;
$this->resultado = mysql_query($sq l, $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($a rrayType = 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_arr ay($this->resultado, $mysqlArrayType ))
array_push($tem poral, $dato);
$datos = array();
while (sizeof($tempor al)) array_push($dat os, array_pop($temp oral));
return $datos;
}
/*
Función numeroTuplasAfe ctadas():
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 numeroTuplasAfe ctadas()
{
return mysql_affected_ rows($this->vinculo);
}
/*
Función numeroTuplasRes ultado():
Función para saber el número de tuplas de un resultado SQL.
Parámetros:
Ninguno.
Retorno:
Número de tuplas del resultado.
*/
function numeroTuplasRes ultado()
{
if (stristr($this->sentenciaSQL , "select") OR stristr($this-
return mysql_num_rows( $this->resultado);
else return 0;
}
}
And the second class...
require_once("C onexion.php");
class Consulta {
var $conexion;
var $cadenaSQL = "";
var $consulta;
function conectar() {
$this->conexion = new Conexion();
$this->conexion->iniciarConexio n();
}
function desconectar() {
$this->conexion->cerrarConexion ();
unset($this->conexion);
}
function consultaExterna SQL($sql, $arrayType = SISTEMA_ASSOC) {
$this->consulta = NULL;
$this->cadenaSQL = $sql;
$this->conectar();
$this->conexion->consultaIntern aSQL($sql);
if ($this->conexion->numeroTuplasRe sultado() 0) $this->consulta =
$this->obtenerDatos($ arrayType);
$this->desconectar( );
return $this->obtenerResulta do();
}
function obtenerDatos($a rrayType) {
return $this->conexion->obtenerDatos($ arrayType);
}
function obtenerResultad o() {
return $this->consulta;
}
function obtenerSQL() {
return $this->cadenaSQL;
}
function obtenerSiguient eIdentificadorT abla($nombreTab la) {
$consulta = $this->consultaExtern aSQL("SELECT max(id) AS maximo FROM
".$nombreTabla. "");
$consulta = array_pop($cons ulta);
if (!empty($consul ta['maximo'])) return $consulta['maximo'] + 1;
else return 1;
}
}
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(S ISTEMA_HOST.":" .SISTEMA_PORT,
SISTEMA_USERNAM E, SISTEMA_PASSWOR D);
if ($this->vinculo == false) {
return FALSE;
exit();
}
if (!mysql_select_ db(SISTEMA_DATA BASE, $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 consultaInterna SQL():
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 consultaInterna SQL($sql)
{
$this->sentenciaSQL = $sql;
$this->resultado = mysql_query($sq l, $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($a rrayType = 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_arr ay($this->resultado, $mysqlArrayType ))
array_push($tem poral, $dato);
$datos = array();
while (sizeof($tempor al)) array_push($dat os, array_pop($temp oral));
return $datos;
}
/*
Función numeroTuplasAfe ctadas():
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 numeroTuplasAfe ctadas()
{
return mysql_affected_ rows($this->vinculo);
}
/*
Función numeroTuplasRes ultado():
Función para saber el número de tuplas de un resultado SQL.
Parámetros:
Ninguno.
Retorno:
Número de tuplas del resultado.
*/
function numeroTuplasRes ultado()
{
if (stristr($this->sentenciaSQL , "select") OR stristr($this-
>sentenciaSQL , "SELECT"))
else return 0;
}
}
And the second class...
require_once("C onexion.php");
class Consulta {
var $conexion;
var $cadenaSQL = "";
var $consulta;
function conectar() {
$this->conexion = new Conexion();
$this->conexion->iniciarConexio n();
}
function desconectar() {
$this->conexion->cerrarConexion ();
unset($this->conexion);
}
function consultaExterna SQL($sql, $arrayType = SISTEMA_ASSOC) {
$this->consulta = NULL;
$this->cadenaSQL = $sql;
$this->conectar();
$this->conexion->consultaIntern aSQL($sql);
if ($this->conexion->numeroTuplasRe sultado() 0) $this->consulta =
$this->obtenerDatos($ arrayType);
$this->desconectar( );
return $this->obtenerResulta do();
}
function obtenerDatos($a rrayType) {
return $this->conexion->obtenerDatos($ arrayType);
}
function obtenerResultad o() {
return $this->consulta;
}
function obtenerSQL() {
return $this->cadenaSQL;
}
function obtenerSiguient eIdentificadorT abla($nombreTab la) {
$consulta = $this->consultaExtern aSQL("SELECT max(id) AS maximo FROM
".$nombreTabla. "");
$consulta = array_pop($cons ulta);
if (!empty($consul ta['maximo'])) return $consulta['maximo'] + 1;
else return 1;
}
}
Comment