php 查询的时候去重复,php - PHP OOP避免必须在方法中重复类似的查询

我正在学习,并且仍在努力掌握许多OOP概念的窍门,所以在阅读/回答问题时请记住这一点。

因此,面向对象编程的主要目的之一就是不要重复正确的操作。然而,当我创建方法时,我经常发现自己在查询数据库时重复相同的语句。从下面我创建的类的代码中可以看出。function getCategory()

{

$sql = "SELECT * FROM jobs";

$stmnt = $db->prepare($sql);

$stmnt->execute();

$results = $stmnt->fetchAll();

foreach ($results as $result) {

$cat[] = $result['category'];

}

return $this->category = $cat

}

function selectCategory($selectedCategory){

$sql = "SELECT * FROM jobs

WHERE category =:category";

$stmnt = $db->prepare($sql);

$stmnt->bindValue(':category', $selectedCategory);

$stmnt->execute();

$results = $stmnt->fetchAll();

foreach($results as $result){

$result= array('category' => $result['category'], 'headline' => $result['headline']);

}

return $this->category = $result

}// selectCategory

我的问题。

有没有办法/应该怎么做才能避免在我的方法中不断地编写相同的数据库查询?我觉得我有点不深入,但这不会阻止我尝试。欢迎任何帮助和建议(请记住我是初学者)

最佳答案

您可以运行查询以获取所有数据,然后使用PHP从获取的数据中提取数据。

但我不喜欢,而且效率不高。

您有两个不同的查询,因此需要调用,只需稍微改进代码,就可以创建这样的模型:class Category

{

private $db;

public function __construct(PDO $db)

{

$this->db = $db;

}

function getAll()

{

return $this->db->query('SELECT * FROM jobs');

}

function getByCategory($category){

$stmt = $this->db->prepare(

"SELECT * FROM jobs WHERE category =:category"

);

$stmt->bindValue(':category', $category);

$stmt->execute();

return $stmt->fetchAll();

}

}

这很好,而且不会重复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值