2 回答
TA贡献1936条经验 获得超6个赞
你可以放在方法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 关注
- 264 浏览
添加回答
举报