gpt4 book ai didi

php - 如何在类中使用sql查询

转载 作者:行者123 更新时间:2023-11-29 23:18:24 25 4
gpt4 key购买 nike

我有一个关于在 PHP 类中实现 SQL 查询的最佳方法是什么的问题。我希望尽可能减少查询。

这是我的第一次尝试:

class NewsArticle
{
//attributes
private $newsArticleID;

//methodes
//constructoren
public function __construct($newsArticleID)
{
$this->newsArticleID = $newsArticleID;
}

//getters
public function getGeneralData()
{
$query = mysql_query("SELECT author, title, content, datetime, tags FROM news WHERE news_id = '$this->newsArticleID'");
$result = mysql_fetch_array($query);

$data = array(
'author' => $result['author'],
'title' => $result['title'],
'content' => $result['content'],
'datetime' => $result['datetime'],
'tags' => $result['tags']
);

return $data;
}

//setters
}

现在我想知道是否最好为generalData 创建一个 setter ,并为我从数据库检索的每个项目创建一个变量并分配正确的值。然后我可以为每个变量创建一个 getter。就像这样。

class NewsArticle
{
//attributen
private $newsArticleID;
private $author;
private $title;
// more variables

//methodes
//constructoren
public function __construct($newsArticleID)
{
$this->newsArticleID = $newsArticleID;
}

//getters
public function getAuthor()
{
return $this->author;
}

public function getTitle()
{
return $this->title;
}

//setters
public function setGeneralData()
{
$query = mysql_query("SELECT author, title, content, datetime, tags FROM news WHERE news_id = '$this->newsArticleID'");
$result = mysql_fetch_array($query);

$this->author = $result['author'];
$this->author = $result['author'];

//other variables
}
}

最佳答案

使用 setter 和 getter 的要点是,通过强制开发人员使用它们,您可以实现更复杂的访问机制,例如在设置值时设置一个标志,以便您的类知道将其写回数据库(尽管这是一个相当糟糕的例子,因为无需通过方法强制访问即可实现目标)。

顺便说一句

news_id = '$this->newsArticleID'

没有。

不应将数字加引号(会破坏优化器),并且应在查询中使用字符串时对其进行转义。

关于php - 如何在类中使用sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com