PHP - CLASES EN PHP

 
Vista:

CLASES EN PHP

Publicado por gerardo medina velazco (2 intervenciones) el 16/11/2008 08:01:06
Estimados,
Estoy armando la siguiente clase

class DB_mysql
{
var $msj_boleano;
var $query;
var $msj;
/* variables de conexión */
var $baseDatos;
var $servidor;
var $usuario;
var $clave;
/* identificador de conexión y consulta */
var $Conexion_ID = 0;
var $Consulta_ID = 0;
/* número de error y texto error */
var $Errno = 0;
var $Error = "";
/* mensajes */

/* Método Constructor: Cada vez que creemos una variable
de esta clase, se ejecutará esta función */
function DB_mysql($bd = "prueba", $host = "localhost", $user = "root", $pass = "")
{
$this->baseDatos= $bd;
$this->servidor= $host;
$this->usuario = $user;
$this->clave = $pass;
}

/*Conexión a la base de datos*/
function conectar($bd, $host, $user, $pass)
{
if ($bd != "") $this->baseDatos = $bd;
if ($host != "") $this->servidor = $host;
if ($user != "") $this->usuario = $user;
if ($pass != "") $this->clave = $pass;
// Conectamos al servidor
$this->Conexion_ID = mysql_connect($this->servidor, $this->usuario, $this->clave);
if (!$this->Conexion_ID)
{
$this->Error = "Ha fallado la conexión.";
return 0;
}
//seleccionamos la base de datos
if (!@mysql_select_db($this->baseDatos, $this->Conexion_ID))
{
$this->Error = "Imposible abrir ".$this->baseDatos;
return 0;
}
/* Si hemos tenido éxito conectando devuelve
el identificador de la conexión, sino devuelve 0 */
return $this->Conexion_ID;
}

/* Ejecuta un consulta */
function consulta($sql)
{
if ($sql == "")
{
$this->Error = "No ha especificado una consulta SQL";
return 0;
}
//ejecutamos la consulta
$this->Consulta_ID = @mysql_query($sql, $this->Conexion_ID);
if (!$this->Consulta_ID)
{
$this->Errno = mysql_errno();
$this->Error = mysql_error();
}
/* Si hemos tenido éxito en la consulta devuelve el identificador de la conexión, sino devuelve 0 */
return $this->Consulta_ID;
}

/* Devuelve el número de campos de una consulta */
function numCampos()
{
return mysql_num_fields($this->Consulta_ID);
}

/* Devuelve el número de registros de una consulta */
function numRegistros()
{
return mysql_num_rows($this->Consulta_ID);
}
/* Devuelve el nombre de un campo de una consulta */
function nombreCampo($numcampo)
{
return mysql_field_name($this->Consulta_ID, $numcampo);
}

/* Muestra los datos de una consulta */
function verconsulta()
{
echo "<table border=1> ";
// mostramos los nombres de los campos
for ($i = 0; $i < $this->numCampos(); $i++)
{
echo "<td><b>".$this->nombreCampo($i)."</b></td> ";
}
echo "</tr> ";
// mostrarmos los registros
while ($row = mysql_fetch_row($this->Consulta_ID))
{
echo "<tr> ";
for ($i = 0; $i < $this->numCampos(); $i++)
{
echo "<td>".$row[$i]."</td> ";
}
echo "</tr> ";
}
}

function status_mensaje()
{
return $this->$msj;
}

function status_query()
{
return $this->$query;
}

function status_mensaje_boleano()
{
return $this->$msj_boleano;
}


function agregarRegistros($tabla,$campos,$registros)
{
if (trim($tabla) == "" or trim($tabla) == "" or trim($registros) == "")
{
$this->Error = "No ha especificado una parametros";
return 0;
}

$this->$query = "INSERT INTO $tabla($campos) VALUES($registros);";
$this->Consulta_ID = @mysql_query($this->$query, $this->Conexion_ID);
if (!$this->Consulta_ID)
{
$this->Errno = mysql_errno();
$this->Error = mysql_error();
return 0;
}
if($this->Consulta_ID)
{
$this->$msj="Se Grabó exitosamente";
$this->$msj_boleano=true;
}else{
$this->$msj="No se pudo grabar";
$this->$msj_boleano=false;
}
return $this->Consulta_ID;
}


Ahora lo invoco con la siguiente pagina...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<?

if($_POST["enviar"]=="GUARDAR")
{
/*require ("class.mysql.php");

$objData = new DB_mysql() ;
$objData->conectar("prueba", "localhost", "root", "");
$registros = $_POST["id"].",'".$_POST["nombre"]."','".$_POST["apellido"]."'";
$objData->agregarRegistros("tabla","id,nombre,apellido", "$registros" );
$viajo="PINTAR";
*/
require ("class.mysql.php");
$miconexion = new DB_mysql ;
$miconexion->conectar("prueba", "localhost", "root", "");
$registros = $_POST["id"].",'".$_POST["nombre"]."','".$_POST["apellido"]."'";
$miconexion->agregarRegistros("tabla","id,nombre,apellido", "$registros" );

echo "<div>".$miconexion->status_mensaje()."</div>";
echo "<hr/><div>".$miconexion->status_query()."</div>";
echo "<hr/><div>".$miconexion->status_mensaje_boleano()."</div>";

}

?>

<form method="post">
<table>
<tr>
<td width="96">Id :</td>
<td width="153"><input type="text" name="id" /></td>
</tr>
<tr>
<td>Nombres</td>
<td><input type="text" name="nombre" /></td>
</tr>
<tr>
<td>Apellidos</td>
<td><input type="text" name="apellido" /></td>
</tr>
<tr>
<td colspan="2"><input name="enviar" type="submit" value="GUARDAR" /></td>
</tr>
</table>
</form>
</body>
</html>

y el problema que no se reflejas los datos que deberìa invocar los metodos de la clases aquì debajo descritas:

echo "<div>".$miconexion->status_mensaje()."</div>";
echo "<hr/><div>".$miconexion->status_query()."</div>";
echo "<hr/><div>".$miconexion->status_mensaje_boleano()."</div>";
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder