因此,在 php 中,我试图在创建类时连接到数据库的数据库类中获取一个公共变量。像这样——
<?php
class database {
public $_link;
public function __construct (){
$this->_link = new PDO("mysql:host=localhost; dbname=swinkidc_student", "swinkidc_student", "");
}
}
和...
<?php
class user{
private $db;
public function __construct() {
$this->db = new database;
}
/**
* Returns the ID of a user.
* @param string $user
* @return mixed
*/
public function getUserID($user){
$query = $_link->prepare("SELECT `user_id` FROM `users` WHERE `username` = :user");
$query->bindParam(":user", $user);
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
return $result['user_id'];
}
/**
* Checks if given user is active.
* @param string $user
* @return bool Returns true/false if user is active.
*/
public function isUserActive($user){
}
}
如果我在用户中扩展数据库,我显然可以参考 _link 如果我将其设为私有并且它将起作用,但是,我认为我不应该仅仅为了获得类似的东西而继承..
每当我尝试有关时,我都会得到:致命错误:在第 18 行的 /home/swinkidc/public_html/studentreach/core/authentication/user.php 中的非对象上调用成员函数 prepare()
如前所述,如果我尝试继承方式它会起作用,我只是觉得这不是做这种事情的好方法。
请问有什么建议吗?
谢谢!