中重複類似的查詢我在學習,並且仍然在努力獲得許多OOP概念的懸念,所以請在閱讀/回答問題時記住這一點。PHP 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
我的問題。
有沒有辦法/ 我應該怎麼做才能避免在我的方法中不斷寫入相同的數據庫查詢?我覺得我有點深度,但它不會阻止我嘗試。任何幫助,建議歡迎(請記住我是初學者)
我不是很瞭解你...即時嘗試避免必須反覆寫入選擇語句!如果我的知識缺乏,但我不明白你的建議如何可以幫助我解決問題 –
@PHPglue我發現自己寫這樣的'$ sql =「選擇*從作業 WHERE category =:category」類似的語句。 $ stmnt = $ db-> prepare($ sql); $ stmnt-> bindValue(':category',$ selectedCategory); $ stmnt-> execute();'在我的很多方法中(因此我重複了很多代碼)並尋找一種方法我可以如何避免它 –
對我而言,OOP有助於避免在客戶端重複自己,意思是說,當你實際使用類(作爲對象)時。所以你必須編寫類似的方法,但它們並不完全相同,但使用相同的「格式」或「設計」,這只是爲了避免使用SQL的東西搞亂索引文件。在任何情況下,我只會這樣做,將數據保存在類變量(選擇),插入,更新和從我的數據庫中刪除,然後所有其他方法來源於變量,所以我不需要做太多的SQL,不要再重複自己,最多4次。 – Zeke