connect.php
$username = "USERNAME";
$password = "PASSWORD";
$hostname = "HOSTNAME";
$dbname = 'DATABASE';
try { $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); }
catch(PDOException $e){ echo($e->getMessage()); }
users.php
include "/connect.php";
class User
{
private $id, $name1, $name2, $email, $pic, $league_id;
//Constructor
public function __construct($id)
{
$stmt = $dbh->prepare("SELECT * FROM `users` WHERE `id`=?");
$stmt->execute(array($id));
if($stmt->rowCount()<1) exit("Could not find user");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$this->id = $row["id"];
$this->name1 = $row["name1"];
$this->name2 = $row["name2"];
$this->pic = $row["pic"];
$this->league_id = $row["league_id"];
}
//functions - Get
public function getId() { return $this->id; }
public function getName1(){ return $this->name1; }
public function getName2(){ return $this->name2; }
public function getFullName() { return $this->name1 . " " . $this->name2; }
public function getPic(){ return $this->pic; }
public function getLeagueId(){ return $this->league_id; }
}
的index.php
if(isLoggedIn()) {
$user = new User($_SESSION["userid"]);
echo "Welcome back, ".$user->getFullName()."!";
}
我是PHP新的类和OOP,所以对代码表示道歉。
我在connect.php
中连接到数据库,但我在__constructor
函数中处理查询时遇到了问题。
我知道我不能include
构造函数中的连接。我还看到,如果我直接将connect.php
中的代码插入到函数中,代码就可以工作。
但是,每次我想进行查询时,我都不想连接到数据库;有没有一种方法可以连接__construct
函数的外部?
就重复而言,链接的问题不会回答这个问题。我的问题是:&#34;如何在我的对象的/connect.php
函数中访问__construct
中的对象?&#34;