Resulta que si funciona tal como lo muestro:
index.php
Código PHP:
<?php
require_once 'conectordb.php';
require_once 'managerdb.php';
class index
{
public function run()
{
$query = "INSERT INTO animales (animal,stat) VALUES (3388,4)";
$conx = new conectordb();
$conx->conect();
$conx->query($query);
$conx->exe();
$q = new managerdb();
$q->testQuery($conx);
$conx->close();
}
}
$test = new index();
$test->run();
Código PHP:
<?php
interface interfacedb
{
public function exe();
public function query($query);
public function conect();
public function close();
}
Código PHP:
<?php
require_once 'interfacedb.php';
class managerdb
{
public function testQuery(interfacedb $manager)
{
echo $manager->exe();
//mysql_query($manager->insert());
}
}
Código PHP:
<?php
require_once 'interfacedb.php';
class conectordb implements interfacedb
{
const USUARIO = 'root';
const PASS = '';
const SERVIDOR = 'localhost';
const DB = 'dairyevents';
private $_conexion;
private $_query;
public function conect()
{
$this->_conexion = mysql_connect(self::SERVIDOR,self::USUARIO,self::PASS);
mysql_select_db(self::DB,$this->_conexion);
}
public function query($query)
{
$this->_query = $query;
}
public function exe()
{
return $this->_query;
}
public function close()
{
mysql_close($this->_conexion);
}
public function __toString()
{
return $this->query();
}
}
Como dije, funciona bien pero cuando trato de quitar el metodo exe() para hacer todo desde el metodo query() me arroja el siguiente error:
Código PHP:
Warning: Missing argument 1 for conectordb::query(), called in C:xampphtdocsimanagerdb.php on line 8 and defined in C:xampphtdocsiconectordb.php on line 20
Notice: Undefined variable: query in C:xampphtdocsiconectordb.php on line 22
index.php
Código PHP:
<?php
require_once 'conectordb.php';
require_once 'managerdb.php';
class index
{
public function run()
{
$query = "INSERT INTO animales (animal,stat) VALUES (3388,4)";
$conx = new conectordb();
$conx->conect();
$conx->query($query);
//$conx->exe();
$q = new managerdb();
$q->testQuery($conx);
$conx->close();
}
}
$test = new index();
$test->run();
Código PHP:
<?php
require_once 'interfacedb.php';
class conectordb implements interfacedb
{
const USUARIO = 'root';
const PASS = '';
const SERVIDOR = 'localhost';
const DB = 'dairyevents';
private $_conexion;
private $_query;
public function conect()
{
$this->_conexion = mysql_connect(self::SERVIDOR,self::USUARIO,self::PASS);
mysql_select_db(self::DB,$this->_conexion);
}
public function query($query)
{
$this->_query = $query;
return $this->_query;
}
public function exe()
{
return $this->_query;
}
public function close()
{
mysql_close($this->_conexion);
}
public function __toString()
{
return $this->query();
}
}
Código PHP:
<?php
require_once 'interfacedb.php';
class managerdb
{
public function testQuery(interfacedb $manager)
{
echo $manager->query();
//mysql_query($manager->insert());
}
}
Código PHP:
<?php
interface interfacedb
{
//public function exe();
public function query($query);
public function conect();
public function close();
}
Solo quiero ahorrarme el metodo exe()... no logré dar con "el por que" solo pude hacer correr el script agregando el metodo exe pero no veo caso tenerlo ya que solo recibe y retorna como se darán cuenta... como se soluciona y lo mas importante... por que ???
Gracias !!