Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

llamar clase desde include

Estas en el tema de llamar clase desde include en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola amigos pues tengo echo una clase que me conecta a mi servidor y base de datos pero el problema es como llamarlo yo lo ...
  #1 (permalink)  
Antiguo 20/08/2004, 15:10
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 20 años, 7 meses
Puntos: 0
llamar clase desde include

hola amigos pues tengo echo una clase que me conecta a mi servidor y base de datos pero el problema es como llamarlo yo lo hago con inclue pero como hago la referencia por ejemplo en una consulta

Aqui va el codigo de la clase


<?
class conectar{
var $servidor="localhost";
var $usuario="juanpro";
var $pass="mysql";
var $data="sis_noticias";
var $link;

function conexion(){
$link=mysql_connect($this->servidor,$this->usuario,$this->pass)or die (mysql_error());
mysql_select_db($this->data,$link) or die (mysql_error());
if ($link==1){
echo "Conectado a la base de datos Sis_noticias...";
}else{
echo "La conexion no tuvo exitó";
}
}
}
$objeto_conectar=new conectar;
$objeto_conectar->conexion();
?>


Yo lo llamo con include pero cuando tengo que hacer
esto :


$result=mysql_query($sql," que pongo aca ") or die (mysql_error());

no se como hacer la referencia

espero haber explicado bien lo que quiero

Gracias de antemano
  #2 (permalink)  
Antiguo 20/08/2004, 15:18
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
ok. Tienes que modificar tu metodo conexion(), y en lugar de utilizar la variable $link, debes usar $this->link, para luego hacer referencia asi:

Código PHP:
include_once('claseConectar.php');
$conexion = new conectar;
$conexion->conexion();
$sql "SELECT algo FROM algunatabla WHERE algunacondicion etc";
$result mysql_query($sql,$conexion->link); 
y listo...... dudas?? un saludo
  #3 (permalink)  
Antiguo 20/08/2004, 15:20
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
ahhh, lo siento.......olvide que formalmente no debes acceder a las variables de un objeto directamente, Entonces te hace falta un metodo que se llame getLink() o algo asi:

Código:
function getLink() {

    return $this->link;

}
eso quedaria dentro de tu clase

:)
  #4 (permalink)  
Antiguo 20/08/2004, 17:29
 
Fecha de Ingreso: septiembre-2003
Ubicación: lima
Mensajes: 378
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola amigo hize tu ejemplo pero no me conecta ose se ejecuta el mensaje de echo "La conexion no tuvo exitó";

lo estoy invocando asi:

include("class_conexion.php");
$objeto_conectar=new conectar;
$objeto_conectar->conexion();
$objeto_conectar->getlink();
$sql="SELECT * FROM noticias ORDER BY id";
$result=mysql_query($sql,$objeto_conectar->link) or die (mysql_error());

y bueno agregue el una nueva funcion como me indicaste

espero puedas ayudarme
  #5 (permalink)  
Antiguo 20/08/2004, 17:47
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 22 años, 5 meses
Puntos: 1
Código PHP:
if ($link==1){
echo 
"Conectado a la base de datos Sis_noticias...";
}else{
echo 
"La conexion 
Código PHP:
if ($this->link

sera eso?
__________________
Usuario Registrado de linux #374849
  #6 (permalink)  
Antiguo 20/08/2004, 22:03
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Lo que pasa es que en ningún momento estás asignando valor al atributo "link".
Deberías definir accesores (como te dijo sism82)
Aunque hay varias cosas que puedes mejorar... la idea es esta:
Código PHP:
<?php
class conectar{
var 
$servidor="localhost";
var 
$usuario="juanpro";
var 
$pass="mysql";
var 
$data="sis_noticias";
var 
$link;

function 
conexion(){
$link=mysql_connect($this->servidor,$this->usuario,$this->pass)or die (mysql_error());
mysql_select_db($this->data,$link) or die (mysql_error());
if (
$link){
echo 
"Conectado a la base de datos Sis_noticias...";
$this->setLink($link);//asigna el valor a link
}else{
echo 
"La conexion no tuvo exitó";
$this->setLink(false);//asigna valor a link
}
}

function 
setLink($valor) {//para asignar valor a link
    
$this->link $valor;
}

function 
getLink() {//para obtener el valor de link
    
return $this->link;
}

}
?>
Y en tu archivo pones:
Código PHP:
<?php
include("class_conexion.php");
$objeto_conectar=new conectar;
$objeto_conectar->conexion();
$result=mysql_query($sql,$objeto_conectar->getLink()) or die (mysql_error());
?>
Espero te sirva.
Saludos

Última edición por jpinedo; 20/08/2004 a las 22:14
  #7 (permalink)  
Antiguo 26/02/2015, 16:00
 
Fecha de Ingreso: agosto-2003
Mensajes: 109
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: llamar clase desde include

Tengo esta clase guardada en un archivo php pero me reclama el termino del archivo ?> y no se porque agradecería me puedan ayudar.

<?php
class conectar {
var $servidor = "localhost";
var $usuario = "root";
var $pass = "lfar1272";
var $db_nombre = "publicidad";
var $link;

function conexion() {
$link = mysql_connect($this->servidor,$this->usuario,$this->pass) or die ("Error conectando a la base de datos.");

mysql_select_db($this->db_nombre,$link) or die("Error seleccionando la base de datos.");
if ($link){
echo "Conectado a la base de datos Sis_noticias...";
$this->setLink($link);//asigna el valor a link
}else{
echo "La conexion no tuvo exitó";
$this->setLink(false);//asigna valor a link
}
}

function setLink($valor) {//para asignar valor a link
$this->link = $valor;
}

function getLink() {//para obtener el valor de link
return $this->link;
}
}*
?>

El archivo que llama a la clase se llama index.php y de esta forma llamo a la clase y método.

<?php
include("clase.php");

$conexion = new conectar;

$conexion->conexion();

?>

Quedo atento a sus comentarios y de antemano muchas gracias

Saludos
Felipe
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:01.