2015-10-19 27 views
2

有沒有辦法,使用JUST PHP PDO(無ORMs)來全局過濾所有的讀取/插入/更新/刪除操作。PHP PDO添加過濾器到所有查詢

一個示例是租戶字段(在多租戶數據庫中)。我想在全球範圍內這種類型的過濾器添加到所有的操作:再次

租戶=公司A

。沒有ORM,我已經知道如何用SQL Alquemy,Laravel的雄辯和主義來做到這一點。我現在想知道它是否可能與PDO一起使用。

+0

你基本上想要自動添加WHERE tenant ='companyA'到所有查詢嗎?你可能可以擴展PDO並覆蓋一些方法,使用SQL解析器或其他東西,並根據你的喜好修改查詢。 – Jakar

+0

是的,這是我的想法,但我有什麼要覆蓋/擴展? :) –

+0

@MauricioLopez你只需要擴展PDO並編寫自己的函數,如find(),findAll(),persist()... –

回答

1

創建擴展PDO

class DB extends PDO {...

通常我重寫__construct()方法來獲取任何文檔內的數據庫憑據並連接到數據庫中的類,不要忘了這個方法父的底部調用構造parent::__construct() ...

然後你可以用你自己的方法

public function find($params) { 
    ... 
    $stmt = $this->prepare('')... 

    $rows = $stmt->fetch(PDO::FETCH_ASSOC)... 
} 

在你自己的方法中,你可以應用你的過濾器...