首页 文章

为什么我们在$ conn = new pdo()中编写mysql;如果pdo是平台独立的

提问于
浏览
-1

在PHP PDO(PHP数据对象)教程中,我一直在阅读PDO优于MySQLi的优点是PDO与平台无关 . 这就是说你使用MySQL数据库管理系统用PHP PDO编写了一个脚本 . 稍后您希望将Web应用程序切换到另一个数据库管理系统(如Oracle),您无需重写查询 . 在MySQLi的情况下,你必须重写你的查询 .

现在我看到以下一行感到困惑

$ conn = new PDO(“mysql:host = $ servername; dbname = myDB”,$ username,$ password);

为什么我们需要在第一个参数中提到 "mysql" ?如果我要将我的网站移植到另一个DBMS,我不需要用 "oracle" 替换这个"mysql"吗?

希望有人澄清这一点 .

谢谢

1 回答

  • 1

    这实际上是一个很好的问题,不知道为什么它被如此激烈地贬低 .

    稍后您希望将Web应用程序切换到另一个数据库管理系统(如Oracle),您无需重写查询 .

    不幸的是,'s but a nasty rumor. In fact, you'也必须重写许多查询 . PDO只是一个Database Access Abstraction layer,意味着它提供了访问不同数据库的统一API,但它不会根据不同的SQL风格为您重写SQL查询 .

    为什么我们需要在第一个参数中提到“mysql”?

    好吧,即使对于你想象中的PDO,你也必须以某种方式告诉使用哪个驱动程序 . 所以对于实际的PDO也是如此 . 确实,单一的自动售货机可以为您提供百事可乐或可乐,但它无法读懂思想,您必须指明它会是什么 .

    所以是 - 您必须指定要连接的数据库 and 重写您的查询 .

    PDO优于MySQLi的优势

    这是最微不足道的优势 - 实际上是much more .

相关问题