当前位置: 首页 > 知识库问答 >
问题:

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

巩俊远
2023-03-14

在PHP PDO(PHP数据对象)教程中,我读到过PDO相对于MySQLi的优势是PDO独立于平台。也就是说,您使用MySQL数据库管理系统编写了一个PHP PDO脚本。稍后,如果您想将Web应用程序切换到另一个数据库管理系统(如Oracle),则不需要重写查询。而在MySQLi的情况下,你必须重写你的查询。

现在看下面这行我感到困惑

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

为什么我们需要在第一个参数中提到“mysql”?如果我必须将我的网站移植到另一个数据库管理系统,我不需要用类似“甲骨文”的东西替换这个“mysql”吗?

希望有人能澄清这一点。

谢谢

共有2个答案

包建义
2023-03-14

PDO提供了一个数据访问抽象层,这意味着,无论使用哪个数据库,都使用相同的函数来发出查询和获取数据。

这意味着您不必在DBMS交换机上更改您的PHP代码,在大多数情况下,如果使用正确的话。但是PDO绝对应该知道你使用什么数据库,如何处理它,使用驱动程序。

数据库和类型可以安全地移动到配置文件中,以便以后进行自定义

陆承宣
2023-03-14

这实际上是一个好问题,不知道为什么它被如此猛烈地否决了。

稍后,如果要将web应用程序切换到其他数据库管理系统(如Oracle),则无需重写查询。

不幸的是,这只是一个令人讨厌的谣言。事实上,您还必须重写许多查询。PDO只是一个数据库访问抽象层,意味着它提供了访问不同数据库的统一API,但它不会根据不同的SQL风格为您重写SQL查询。

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

嗯,即使对于你想象中的PDO,你也必须知道使用哪个驱动程序。所以对于实际的PDO也是如此。的确,一台机器可以为你提供百事可乐或可口可乐,但它不能读心术,你必须具体说明它是什么。

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

PDO优于MySQLi的优势

这是最微不足道的优势——实际上还有更多。

 类似资料:
  • 在我的mac上使用Maven构建时,在< code>mvn install上,我得到 [警告]使用平台编码(实际上是MacRoman)来复制过滤的资源,即构建取决于平台! 是否可以为给定平台 (Linux) 构建或以其他方式独立于构建平台?

  • 问题内容: 提前道歉,提出一个(看似显而易见的)问题。我没有在线找到答案,所以我想问一下: Java的Util.Random是否独立于平台? 例如,是否将在* nix和Windows系统中产生完全相同的随机数序列? 问题答案: 从文档: 如果使用相同的种子创建了两个实例,并且对每个实例进行了相同的方法调用序列,则它们将生成并返回相同的数字序列。为了保证此属性,将为class指定特定的算法。为了实现

  • 我总是问这个问题,但我找不到确切的答案: Docker平台独立吗? 我的意思是,当我在Windows中生成映像时,我能在Linux或macOS上运行该映像吗?或者当我在Ubuntu上生成映像时,我可以在Windows上运行该映像吗? 如果是,怎么做?如果不是,那么说docker映像可以在任何地方运行而不用担心任何依赖又有什么意义呢? 请帮我回答这个问题

  • 问题内容: 我有一些通过 Runtime.getRuntime.exec(String) 运行命令的代码,它可以在Windows上运行。当我将代码移至Linux时,它崩溃了,并且解决该问题的唯一方法是切换到 exec(String []) 版本。如果我这样处理,代码在Windows和Linux上是否可以相同,还是应该在Windows上使用exec(String)而在Linux上使用exec(Str

  • 问题内容: 在python中,我有变量和。我想把它们串联起来获得。但是在Windows下,我应该使用和用于POSIX 。 如何使该平台独立? 问题答案: 您要为此使用os.path.join()。 使用此方法而不是使用字符串连接等方法的优势在于,它知道各种特定于OS的问题,例如路径分隔符。例子: 在 Windows 7下 : 在 Linux下 : 所述OS模块包含目录,路径操纵并找出OS特定信息许

  • E立方管理平台是用EXCEL制作并运行信息管理系统的软件。 E立方管理平台将EXCEL、网络技术、数据库及各种管理需求整合到一起。只要管理人会用EXCEL,了解自己的业务关系,就可以做出自己需要的管理软件,达到预期的目的。 E立方管理平台是一个管理人完全自主掌控的管理工具,用它可以做出各种专业级的、完全满足各种个性化需要的管理软件,达到提升管理、提高效率、规范流程、共享信息、节省资金及人工的目标。