2012-06-03 44 views
1

我有一個使用大量mysql_query調用的web應用程序 - 主要是因爲我在教程和其他地方發現了這些,我學會了如何運行查詢。許多人不斷建議我切換到mysqli,因爲mysql在某些時候會消失,但是,我已經讀過,使這個開關比在最後添加一個i要困難得多,並且需要重寫所有代碼。php/mysql從mysql切換到mysqli或pdo,可能會逐漸做

如果我問是否值得這個開關,我想幾乎每個人都會說是,因爲堅持使用mysql似乎是少數觀點。所以我的問題是,是否可以遞增地切換到mysqli,即在寫入時逐漸更新調用或頁面,還是凍結舊網站並將整個網站重做爲全部mysqli或pdo網站更好。當我說得更好時,我考慮重做整個網站所涉及的所有工作和成本。顯然,將資源分配給網站上的新功能和東西是有吸引力的,而不是重複使用舊的mysql工作正常的事情。

謝謝!

回答

2

由於來自PHP的通知,他們將不會正式棄用mysql_*擴展,直到至少PHP 5.5/6.0,所以你有一些時間來重寫你的腳本,然後這些函數完全消失或E_DEPRECATED錯誤開始出現。 http://news.php.net/php.internals/53799

也許如果你的代碼是意大利麪條,而沒有組織,那麼它的時間爲recode /重構。 MVC和控制器模型一樣好,所有的查詢都在一個地方&數據庫連接/ CRUD在一個對象屬性中。

+0

我對框架的使用經驗對於設置它的程序員來說是有意義的,但如果它們不是衆所周知的標準,它們會爲新團隊成員或其他需要處理它們而不知道或喜歡的人框架有沒有很好的標準?另外,是否真的有辦法將邏輯從dbase訪問完全與標記分開?我已經有了主要的標記,但是爲了區分評論和評論以及類似的東西,看起來你總是會把標記與邏輯混合起來。 – user1260310

0

關於mysql適配的第一點。最好的選擇是最初使用一些自己的適配器/包裝器。例如用query(),rowCount(),eth方法編寫類MyMysql。在這個時候不會有關於在mysql/mysqli/pdo之間切換的問題。

關於切換的第二點。 mysql和mysqli沒有太大的區別。是的,它不僅僅是在單詞末尾使用「我」字母,但大多數查詢都非常相似。在我的記憶中,例如沒有mysql_fetch_assoc等價物(但是這裏有mysql_fetch_array)。可能會比使用「mysql」 - >「mysqli」的常規模式更難,但不是太難。所以不要擔心mysqli - 這是mysql驅動程序的邏輯延續。

1

如果我處於您的情況,我會把它作爲一個機會來完善整個應用程序的體系結構。

您應該首先從應用程序的其餘部分分離僅處理數據庫交互的代碼。最好的辦法是朝着類似DataMapper的結構走向。

此時切換到PDO或MySQLi將是一項簡單的任務。我們不需要一直走到MVC,但是當你將應用程序的不同職責分開時:表現邏輯,模板化,路由,業務邏輯,數據訪問邏輯等等,你最終會得到一些類似於MVC。