我非常喜欢使用 PDO,所以它可能会打开。
用法可能如下:
$m = new MDB();
$m->Users()->GetRec($param);
Users()
是数据库中的表名,GetRec($param)
是我的函数。
我看起来像这样的一种方式:
class MDB extends DB {
function __construct(){
parent::__construct();
if ($result = $this->pdo->query("SHOW TABLES"))
{
while ($row = $result->fetch(PDO::FETCH_NUM))
{
// this is only my imagination (not working at all)
__set($row[0],true);
}
}
}
// set
public function __set($name, $value)
{
// here could be a method (not properties)
$this->$name = $value;
}
当然,这一切似乎都不是我想要的。所以我能够在这个问题上得到一些建议和意见。
更新1。
感谢神奇的方法 __call,现在我正在努力做到这一点。观看我更新的代码:
class MDB extends DB {
function __construct(){
parent::__construct();
}
public function __call( $method, $param )
{
$tables = array();
if ($result = $this->pdo->query("SHOW TABLES"))
{
while ($row = $result->fetch(PDO::FETCH_NUM))
{
$tables[] = $row[0];
}
}
if (in_array($method,$tables))
{
return $this;
}
else
{
return FALSE;
}
}
好吧,似乎它对我有用!