我已經寫了很多使用mysqli_
的代碼。問題是我現在需要將此代碼與使用mysql_
的代碼集成在一起,並且負責連接,身份驗證等。我不想創建第二個連接,但mysql_
缺少一些功能,例如,準備好的查詢。所以我想以某種方式神奇地將連接「導入」到mysqli
。這甚至有可能嗎?如果是這樣,那怎麼做?在mysql_連接中使用mysqli_函數?
回答
不,那是不可能的。
順便說一句,準備語句是不是讓查詢安全的唯一途徑。
這是佔位符每個人都應該使用,而不一定必須使用預先準備的語句來實施。
使用mysql_ *函數也可以輕鬆實現佔位符
安全性不是使用'mysqli'的唯一原因。另一個是性能:準備好的語句可以被緩存,因此不需要經過解析,優化和MySQL在內部查詢的其他內容。如果你只是逃避查詢中的所有字符串,這是相當安全的,但對於MySQL來說,這是一個新的查詢,所以它會慢很多。 – Septagram
由mysql_connect
創建的連接資源不能重複使用MySQLi擴展名。您將不得不在當前代碼中處理連接或重構舊代碼。
這並不像聽起來那麼難。 MySQLi也有一個過程接口,您可以像使用舊的MySQL擴展一樣使用擴展。 MySQLi最大的好處是面向對象的接口,它會使重構變得更復雜一些。庫MySQLi本身也支持(包裝到方法/函數),MySQL的功能,如準備好的語句,交易和連接的字符集,但這並不意味着你不能提交START TRANSACTION
或SET CHARSET utf8
就像你mysql_query
希望這樣做有助於。如果你有關於重構的更具體的問題,請隨時問:)
我在等待評論 –
- 1. mysqli_ *或mysql_ * perfomance?
- 2. 轉換mysql_ *至* mysqli_問題
- 3. mysqli_ *是比mysql_ *更好的選擇嗎?
- 4. 將php代碼從mysql_移植到mysqli_
- 5. mysql_ *沒有連接到數據庫
- 6. 將腳本從mysql_轉換爲mysqli_或PDO
- 7. 如何通過__construct返回數據庫連接以用於mysqli_ *?
- 8. 當使用mysqli_ *連接時,在aura/sqlquery中進行變量綁定
- 9. 在連接中使用表值函數
- 10. 在mysqli連接中使用mysql_real_escape_string函數
- 11. 在連接中使用聚合函數
- 12. 在php函數中使用pdo連接
- 13. 奇怪的mysql_多個連接問題
- 14. 使用Excel連接函數
- 15. 要使用哪一個mysqli_ *?
- 16. MySQL_查詢和PHP函數strip_tags()
- 17. 如何從mysql_函數轉換爲PDO
- 18. 升級後我不能使用mysql_ *函數PHP
- 19. 在PHP函數的for循環中將mysql_ result()轉換爲mysqli
- 20. ajax()函數當它包含在一個mysql_中時
- 21. 在php中使用函數來創建數據庫連接?
- 22. 在Javascript函數中連接數據
- 23. 如果函數不能連接使用
- 24. 使用html連接javascript函數
- 25. 使用函數來創建連接
- 26. Python如何使用連接函數連接列表列表
- 27. 在jsp的另一個函數中使用連接變量
- 28. 在IF語句中使用連接函數
- 29. 如何在JPQL構造函數表達式中使用連接?
- 30. 在另一個函數中使用sql連接
難道你不能只是創建一個'mysqli_connect'連接? – George
@ F4r-20,我並不完全有權訪問認證信息,另外,我不喜歡無緣無故地使用兩個連接的想法。但是因爲我目前正在尋找一個快速修復來整合我的代碼(並且希望稍後會做),所以我當然會考慮這個選項)) – Septagram
你應該做的是擺脫所有的'mysql_'調用。如果要維護這個項目,那麼無論如何你都必須儘快完成。現在不妨做。 –