Hola, expongo mi problema, tengo una clase llamada MySQL() que se encarga de almacenar los datos de la conexión con MySQL y de realizar consultas.
Entonces, una vez configurado el objeto, quiero hacerme clases para insertar, eliminar y actualizar registros de una tabla, con lo que tengo la siguiente clase:
Código PHP:
class TabTgu {
var $tgu_id;
var $tgu_nombre;
var $tgu_estado;
function TabTgu(){}
function setTguId($var){$this->tgu_id=$var;}
function setTguNombre($var){$this->tgu_nombre=$var;}
function setTguEstado($var){$this->tgu_estado=$var;}
function getTguEstado(){return $this->tgu_estado;}
function getTguNombre(){return $this->tgu_nombre;}
function getTguId(){return $this->tgu_id;}
function insert($MySQL){ $sql = "INSERT INTO tab_tgu VALUES (null,'".$this->tgu_nombre."','".$this->tgu_estado."');"; $res = $MySQL->query($sql); }
function delete($MySQL){ $sql = "DELETE FROM tab_tgu WHERE tgu_id = '".$this->tgu_id."'"; $res = $MySQL->query($sql); }
function update($MySQL){ $sql = "UPDATE FROM tab_tgu SET tgu_nombre = '".$this->tgu_nombre."' tgu_estado = '".$this->tgu_estado."' WHERE tgu_id = '".$this->tgu_id."';"; }
}
Esta clase me funciona bien, lo que pasa que he creado otra clase para que me busque dentro de la base de datos en dicha tabla en base a los métodos que yo quiera, es la siguiente:
Código PHP:
class TabTguUtil {
function getTabTguByNombre($MySQL,$var){
$sql = "SELECT * FROM tab_tgu WHERE tgu_nombre = '".$var."'";
$res = $MySQL->query($sql);
$row = mysql_fetch_assoc($res);
return $row;
}
}
Mi problema esta en que al usar esta segunda clase me dice lo siguiente:
Fatal error: Call to a member function on a non-object in d:\servidor\www\proyecto\web\inc\TabTgu.php on line 21 que corresponde con la linia:
Código PHP:
$res = $MySQL->query($sql);
Entonces no entiendo xq da error, si en la otra clase le paso el objeto para hacer el insert (comprobado), delete (por comprobar), update(por comprobar) y funciona mientras que en esta otra no me funciona.
Alguién podría decirme que me falta o que estoy haciendo mal ??