gpt4 book ai didi

PHP:mysql v mysqli v pdo

转载 作者:IT老高 更新时间:2023-10-28 23:54:31 27 4
gpt4 key购买 nike

我一直在阅读一些关于使用 mysqli 与 pdo 在 php 中使用 mysql 的问题。

我见过诸如 mysqli or PDO - what are the pros and cons? 之类的问题或 Moving from mysql to mysqli or pdo? ,它们都专门处理 mysqli v pdo。我对这两种方法中哪一种更好不太感兴趣。

我想知道为什么要避免使用 mysql_ 函数。当然,根据 PHP 文档,它们正在被弃用 http://php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated , 线程 PHP PDO and MySQLi建议 PDO 和 MySQLi 更强大,线程 What is the difference between MySQL, MySQLi and PDO?意味着这些更新的方法更安全。

总的来说,我想知道 mysql_ 方法的主要弱点是什么,以及避免它的原因是什么(我想更具体地说,不仅仅是因为它已被弃用)。我打算更新受影响的脚本,并对为什么不推荐使用这种旧方法感到好奇。

谢谢!

最佳答案

mysql_query 函数的设计使得您必须小心地转义您注入(inject)其中的每一位数据,如果您错过了整个应用程序中的任何一个数据可以被 automatic SQL vulnerability exploit tool 摧毁.

mysqli 和 PDO 都支持占位符,必需 以确保您的查询免受 SQL 注入(inject)错误的影响。对所有内容调用 mysql_real_escape_string 不仅乏味,而且容易出错,这就是问题所在。

mysql 函数是 PHP 早期的产物,与 mysqli 作为选项提供的面向对象的新功能相比,它的局限性要大得多,或 PDO 的设计。

使用这两个新接口(interface)之一有很多很好的理由,但最重要的是 mysql_query 函数在生产代码中使用太危险了。有了它,您将永远远离一些非常严重的问题。

充满密码和信用卡号的数据库漏洞不断出现是有原因的。具有明显的 SQL 注入(inject)点使得完全接管站点几乎太容易了。

关于PHP:mysql v mysqli v pdo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097245/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com