如果這個問題是重複的,我很抱歉。我已經閱讀manyothermysqliquestions首先,但沒有一個看起來是完全重複的。mysqli授權重寫大型工作系統的好處嗎?
我是我公司一直從事4年以上項目的高級開發人員。這是一個龐大的PHP MVC框架系統,包含CMS系統模塊,電子商務系統等。總共我們正在討論1583個文件和〜407,912行代碼(不包括評論和空白行)。
該系統使用我們從頭開始構建的一個適合活動記錄的系統,它幾乎用於系統的每個模塊。它是使用舊的PHP mysql函數構建的,而不是新的mysqli函數或PDO。 PDO有點矯枉過正,因爲作爲一家SaaS公司,我們控制着基礎架構,我們將在可預見的將來使用MySQL,所以我們不需要數據庫抽象。但在這裏的答案以及PHP文檔已經用強壯的語言關於MySQL的VS的mysqli:
http://ca3.php.net/manual/en/mysqli.overview.php:
注意:
如果你正在使用MySQL版本4.1。 3 或更高版本,強烈建議使用 ,而不是使用mysqli擴展 。
由於我們使用的是舊的mysql函數,因此我們全面檢查了新代碼以檢查SQL注入錯誤。它由我們的工作人員審查,所以有可能我們錯過了一些東西,但我相信我們已經被覆蓋了。由於系統在代碼中使用了mysql函數,所以新代碼必須遵循該約定;我們不能遷移到mysqli,因爲我們去...
重寫整個系統使用mysqli代替有沒有好處?或者更好地問,這個好處是否值得相當大的成本?或者,當我們進行重大修改時(在下一個主要版本中),我們應該考慮這一點嗎?我的心態是,如果它沒有損壞,不要修復它......但我只是固執?
哦,等等,那個文件/行數包括JavaScript代碼。當我弄清楚如何排除.js文件時,請耐心等待...... – Josh 2010-09-02 14:22:28
您不應該重寫所有內容。你說你開發了一個*「專有活動記錄系統」*,所以這應該是唯一需要改變的東西,因爲通過適當的設計,你所有的代碼都不應該直接使用'mysql'。相反,它應該調用AR-System的函數 – jigfox 2010-09-02 14:25:56
@jigfox:它與Ruby的ActiveRecord系統類似,可以根據SQL WHERE子句或整個SQL語句進行選擇。因此,所有模塊中的所有語句都需要重寫以使用Prepared Statements ... – Josh 2010-09-02 14:28:48