2011-11-23 20 views
1

不幸的是,我寫了很多使用mysql_query,mysql_fetch_array和mysql_num_rows調用的代碼。它接近完成,但今天我已閱讀關於PDO,mysqli。 我不應該重新開始並花費數週的唯一希望是回答 Well if you already have a lot of code written, I wouldn't bother, but for any new projects I would strictly suggest PDO.– musicfreak May 15 '09 at 5:23 答案是2.5年前,所以答案也可能過時。 切換到PDO的原因之一是它有助於防止SQL注入。我「清理」所有輸入的字符串,所以我認爲這不是我的理由。更好的性能(如果它真的更好)同樣重要,但即使現在,網站也能正常工作。 我應該花幾個星期來重寫代碼嗎?或者,如果它有效,這不是什麼大不了的事情? 對不起這個問題,但我很困惑。閱讀更多文檔並不能幫助我選擇適合自己的答案。我不確定是否花了很多時間,我會得到更好的結果或表現(如果現在開始,我會從PDO開始,因爲它更新)。Mysql到PDO:寫了很多代碼,差不多完成了。值得切換嗎?

謝謝。

回答

2

您不必擔心切換。如果項目幾乎準備就緒,並且您將很快開始新項目,只需在下一個項目中遵循新的更好的實踐。

另一方面,你只是收集了一些有用的經驗。使用精心設計的代碼庫,在mysql_ *和PDO之間切換不應該擔心很多。編寫對象和方法來收集數據,因此實際的SQL調用將會非常少。

+0

謝謝你的回答。你給了我一個希望。我是對的:如果我在項目中只使用更新,刪除,選擇,插入和mysql_query,mysql_fetch_array和mysql_num_rows,唯一需要改變的地方就是重寫連接到MySQL數據庫並遵循標準algorythms如何使用PDO進行查詢例如1個查詢需要2分鐘),並且不需要額外的軟件?我覺得在開始之前我沒有看到許多陷阱......我正在閱讀http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html,而且看起來並不那麼糟糕...直到我開始:D – Haradzieniec

+0

@Haradzieniec請務必熟悉準備好的陳述,這就是全部。 – kapa

0

請記住,從PHP 5.4開始(目前處於RC狀態),mysql擴展將被「軟」地棄用,以支持mysqli或PDO(source)。 如果您的項目是長期使用的,並且您認爲您將切換到PHP 5.4+,或者如果您使用共享主機並且無法控制PHP版本,那麼您應該考慮慢慢遷移(我正在做我自己在幾個項目上),否則我不會打擾。 但事實上,在新項目PDO是要走的路。

+0

謝謝。你能否簡單地給我解釋一下,你如何遷徙,以至於不需要一輩子? Evey的查詢請求應該重寫,我不明白人們是如何快速的... – Haradzieniec

+0

如果有一個新版本,其中廣泛使用的功能(在這種情況下mysql_ *)將不可用,共享主機將不會切換爲很長一段時間。 – kapa

+0

@Haradzieniec人們編寫對象,抽象層等。大多數使用mysql_ *的人只是將查詢和所有調用放到代碼所需的位置,這會導致重複和查詢遍及代碼。 – kapa