我通常使用mysql_query()從mysql數據庫中獲取數據。但有些人使用綁定來設置結果。那麼之間有什麼不同?在我看來,這兩個結果都是一樣的。但我覺得綁定有點複雜。任何人都可以請使用綁定的優點是什麼?謝謝。從SQL注入攻擊PHP和MySQL中的綁定是什麼?它有什麼用途?
-1
A
回答
1
數據綁定提供了增強的保護(有時被稱爲SQLIA)。 SQL注入是惡意嘗試訪問您的數據庫的原因超出預期用途。在這裏使用你的想象力。因此,使用mysql_connect
是一個非常糟糕的主意和library is deprecated as of PHP 5.5.0。有關更全面的概述,請參閱this article。
綁定並不像它,如果你打破一個SQL查詢似乎複雜,它可以很容易解釋。
看看下面的代碼在老mysql
圖書館爲例:
mysql_query(
"INSERT INTO users (username, password, user_data) VALUES ('derek_jeter', 'password', 'additional_data')"
);
此代碼很容易受到SQLIA。有了像PDO這樣的庫,您只需添加一個額外步驟即可完全避免此問題。爲了實現更安全的庫相同的結果,你只需要在上面的代碼轉換爲以下幾點:
$db->prepare("INSERT INTO users (username, password, user_data) VALUES (:username, :password, :additional_data)";
$db->execute(
array("username" => "derek_jeter", "password" => "password", "additional_data" => "additional_data")
);
綁定將數據發送到分開查詢插入到MySQL,並瞭解如何解析它插入而不會危及數據庫的安全。通過execute
函數,您只需傳遞與您在prepare
函數中定義的佔位符數據對應的鍵的數組。
注:我用的是「功能」,但是由於PDO庫實際上是你操縱的對象,包含在PDO類的功能在技術上稱爲「方法」。
在你能夠在PDO中運行查詢(比如實例化PDO連接和類)之前,還需要做更多的事情,但我會引用你到the docs which explain everything in great detail。
此外,here's a tutorial I used when I first started using PDO and MySQLi。
相關問題
- 1. STDERR?它是什麼?它有什麼共同用途?
- 2. 什麼是Spring中的config.properties,它的用途是什麼
- 3. 什麼是K2 BalckPearl?它有什麼用途?
- 4. 什麼是程序集,它有什麼用途?
- 5. 什麼是依賴屬性?它有什麼用途?
- 6. 什麼是WCF代理,它們有什麼用途?
- 7. EnableEventValidation的用途是什麼?它的工作原理是什麼?
- 8. 什麼是ECMAScript Editon 5.1,它的用途是什麼?
- 9. 什麼是GPX文件?它的用途是什麼?
- 10. 什麼是UI Bootstrap?它的用途是什麼?
- 11. Jenkins API是什麼意思,它的用途是什麼?
- 12. .NET MySqlCommand.Transaction - 它的用途是什麼?
- 13. 什麼是Mysql datadir的用途?
- 14. Mysql索引鍵的用途是什麼?
- 15. 什麼是影子變量的tensorflow的意義和它的用途是什麼?
- 16. 這些IIS綁定是什麼?它們的目的是什麼?
- 17. 什麼是OpenGL中的陰影採樣器,它們有什麼用途?
- 18. Adobe®LiveCycle®ES - 它和它的Alernatives的用途是什麼?
- 19. `$ .support.ownLast`的用途是什麼?
- 20. TPopupActionBar的用途是什麼?
- 21. _GLOBAL__I_的用途是什麼?
- 22. $ _POST的用途是什麼?
- 23. 「$ this」的用途是什麼?
- 24. CreateSilverlight.js的用途是什麼?
- 25. vertexAttribPointer的用途是什麼?
- 26. RecognizerIntent.DETAILS_META_DATA的用途是什麼?
- 27. Rake的用途是什麼?
- 28. javax.security.auth.callback。*的用途是什麼?
- 29. config.assets.precompile的用途是什麼?
- 30. is_uploaded_file()的用途是什麼?
不同之處在於阻止了SQL注入,並且如果您使用不同的數據值多次重複相同的查詢 – 2014-09-12 14:03:25