【发布时间】:2012-12-16 00:06:29
【问题描述】:
我创建了一个名为 Database 的类。
class Database extends mysqli {
public function __construct() {
parent::__construct();
$mysqli = new mysqli(DBHOST, DBUSER, DBPASSWORD, DBDATABASE);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
}
还有一个扩展数据库的名为 Model 的类
class Model {
function __construct() {
$this->db = new Database();
}
}
还有一个扩展 Model 的类 registerModel
class registerModel extends Model {
public function __construct() {
echo "This is the register Model";
}
public function register(//VARIOUS PASSED VALUES) {
**$stmt = $mysqli->prepare("INSERT INTO users (firstName, lastName) values (?, ?)");**
...
... More Code
...
}
我想做的是从原始数据库类中获取$mysqli,但我不确定如何引用它。我已经尝试了所有方法,但似乎没有任何效果。
附: 在我的应用程序中总是需要前两个类,最后一个 registerModel 类是通过控制器调用的。这就是为什么我不在子类中构造父类的原因。
【问题讨论】:
-
一个建议:不要在构造函数内部创建带有
new()的类,而是从外部将它们作为参数传递。