Comunidad PHPeros
Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: haganex en 28 de Diciembre de 2012, 04:15:14 am
-
Estimados eh leído mucho en Internet y en el foro viendo sobre php orientado a objeto y todas las tutoriales o manuales están hechos en base a mysql y yo estoy aprendiendo a utilizar mysqli, intente crear la conexión y un select, disculpen si esta mal la sintaxis del código pero no entiendo mucho aun.
<?php
class miClase
{
var $servidor;
var $usuario;
var $password;
var $bd;
var $conexion;
public function CrearConecion()
{
$this->servidor="localhost";
$this->usuario="root";
$this->password="";
$this->bd="po";
$conexion = new mysqli($this->servidor,$this->usuario,$this->password,$this->bd);
if ($conexion->connect_errno)
{
echo "Falla al intentar conexion a MySQL <br>";
echo "codigo error :". $conexion->connect_errno;
echo " - " . $conexion->connect_error;
die();
}
else
{
return $this->conexion;
}
}
var $sql;
var $sentencia;
var $nombre;
public function seleccionar()
{
$this->sql="select * from prueba";
$this->sentencia=CrearConecion->prepare($this->sql);
$this->sentencia->mysqli_execute();
$this->sentencia->mysqli_bind_result($this->nombre);
return $this->nombre;
}
}
?>
<?php
require_once "clase.php";
$clase = new miClase();
echo $clase->CrearConecion();
echo $clase->seleccionar();
?>
espero sus comentario
Saludos !
-
Te recomiendo que la variable que contiene la conexión sea una variable de la clase y no una variable local de un método. Además te recomiendo leerte sobre encapsulación de propiedades ya que es algo importante, no te creas que por crear una clase estás programando en OOP. Ya que OOP es algo más abstracto y no tan superficial.
-
Usar "var" si no mal recuerdo ya es obsoleto, ahora debes de definir las variables según parámetros como private, public, static, etcétera.
Otra cosa que logré notar es que estás usando la librería mysqli por procedimientos, cosa que en mi humilde e inexperta opinión, está mal hecha, debido a que estás haciendo la conexión orientada a objetos, las consultas deberían de ser $conexion->prepare(), $conexion->execute, etcétera (o algo así), te recomiendo leer un poco más acerca de la librería MySQLi.
-
La función seleccionar tiene unos errores.
Intenta con esta función tal vez te funcione:
<?php
public function seleccionar()
{
$this->sql="select * from prueba";
$this->sentencia= $this->conexion->prepare($this->sql);
$this->sentencia->execute();
$this->sentencia->bind_result($this->nombre);
return $this->nombre;
}
?>
-
La función seleccionar tiene unos errores.
Intenta con esta función tal vez te funcione:
<?php
public function seleccionar()
{
$this->sql="select * from prueba";
$this->sentencia= $this->conexion->prepare($this->sql);
$this->sentencia->execute();
$this->sentencia->bind_result($this->nombre);
return $this->nombre;
}
?>
Función no, es método.