我正在做一些運行PHP 4的舊系統的維護工作,並通過FreeTDS與MS SQL2000數據庫交談。我知道,它聽起來有點可怕!使用MSSQL數據庫時,有沒有辦法在PHP 4中執行參數化查詢?
很多代碼使用了不安全的字符串連接來生成SQL查詢。我已經做了一些工作來嘗試和過濾輸入,以使事情更安全,但它讓我頭痛。
我想知道是否有一些東西可以讓我做適當的參數化查詢給我目前的設置?此時我無法更改PHP或MSSQL的版本。
我正在做一些運行PHP 4的舊系統的維護工作,並通過FreeTDS與MS SQL2000數據庫交談。我知道,它聽起來有點可怕!使用MSSQL數據庫時,有沒有辦法在PHP 4中執行參數化查詢?
很多代碼使用了不安全的字符串連接來生成SQL查詢。我已經做了一些工作來嘗試和過濾輸入,以使事情更安全,但它讓我頭痛。
我想知道是否有一些東西可以讓我做適當的參數化查詢給我目前的設置?此時我無法更改PHP或MSSQL的版本。
如果您對參數化查詢的主要興趣是SQL注入安全性,我會尋找一個數據庫抽象層,爲您提供功能並以純PHP編寫。我已經使用ADOdb,這是一個不錯的選擇,看起來他們仍然有一個較舊的PHP4版本可供下載。
唯一需要注意的是抽象層可能不會對您的數據庫執行「正確的」參數化查詢。換句話說,他們可能已經實現了自己的參數化引擎,然後將完整的SQL字符串發送到數據庫。這對於MS SQL Server非常重要,因爲「正確的」參數化查詢可以帶來顯着的性能提升。
使用數據庫抽象層,如MDB2即provides them。
這似乎是一個很好的選項,我以前看過,雖然我找不到MDB2可以與PHP4一起使用的參考。你知道如果是這樣嗎? – 2009-04-23 20:55:21
我相信是的。 – ceejayoz 2009-04-24 21:15:58