2 回答

TA貢獻1936條經驗 獲得超7個贊
你可以放在方法global $conn里面getArticle。
...
function getArticle($article_id){
global $conn; // not recommended
$getArticle = $conn->prepare("SELECT * FROM articles WHERE id = :id");
...
}
然而,這種方法是不鼓勵的,因為現在你的Article類對外部狀態有隱含的依賴,并且更難推理和測試。
更好的選擇是將PDO對象傳遞給Article構造函數并將其保留為您的方法可以調用的私有屬性。
class Article {
private $conn;
public $article_id;
...
function __construct(\PDO $conn) {
$this->conn = $conn;
}
function getArticle($article_id){
$getArticlee = $this->conn->prepare("SELECT * FROM articles WHERE id = :id");
...
}
}

TA貢獻1828條經驗 獲得超13個贊
不可能在類中使用 $GLOBALS。你可以在你的環境中做一些改變......
配置文件
class Config{
function __Construct(){
try {
$conn = new PDO('mysql:host='.$dbhost.';dbname='.$dbname, $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn;
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
}
類.article.php
class Article {
protected $conn= new Config;
public $article_id;
function setArticle($article_id) {
$this->article_id = $article_id;
}
function getArticle($article_id){
$getArticlee = $this->conn->prepare("SELECT * FROM articles WHERE id = :id");
$getArticlee->bindParam(':id', $article_id, PDO::PARAM_INT);
$getArticlee->execute();
return $getArticlee;
}
}
- 2 回答
- 0 關注
- 295 瀏覽
添加回答
舉報