You are here: I resolved that problem... « PHP Programming Language « IT news, forums, messages
I resolved that problem...

Posted by laastos on 11/27/07 21:28

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

}

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация