| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 从 MySQL 扩展迁移到 PDO -> 正文阅读 |
|
[大数据]从 MySQL 扩展迁移到 PDO |
本指南是一个实用概述,可帮助您开始将现有 PHP 代码从使用较旧的 MySQL 扩展迁移到较新的 PDO 数据库抽象扩展。我不会介绍 PDO 提供给您的所有功能,但我将与您分享您需要了解的基本方法并提供一些提示,以便您的迁移尽可能快速和轻松。 首先,您应该了解 PDO 在 PHP 生态系统中的位置。实际上有三种方法可以通过 PHP 与 MySQL 数据库交互:第一种是使用 MySQL 扩展,第二种是使用 MySQLi 扩展,第三种是使用 PDO。 MySQL 扩展是三者中最古老的,并且是开发人员用来与 MySQL 通信的原始选项。由于在 PHP 和 MySQL 的较新版本中进行了改进,该扩展现在已被弃用,取而代之的是其他两个替代方案。 MySQLi 是用于处理 MySQL 数据库的“改进”扩展。它利用了较新版本的 MySQL 服务器中可用的功能,向开发人员公开了面向函数和面向对象的接口,并做了一些其他漂亮的事情。如果 PDO 不适合您的项目,那么这就是您应该使用的扩展。 然后最近的扩展是 PDO,它代表“PHP 数据对象”。PDO 提供了一个 API,它整合了以前分布在主要数据库访问扩展(即 MySQL、PostgreSQL、SQLite、MSSQL 等)中的大部分功能。该接口公开了高级对象,供程序员使用数据库连接、查询和结果集和低级驱动程序执行与数据库服务器的通信和资源处理。大量的讨论和工作正在进入 PDO,它被认为是在现代、专业的代码中使用数据库的适当方法。 如果可能的话,我建议人们跳过中间人,从 MySQL 扩展迁移到 PDO 而不是 MySQLi。PDO 提供了一致的 API 来处理各种数据库,因此如果您不得不使用其他数据库,则无需修改您的 PHP 代码。此外,虽然 MySQLi 扩展目前仍在维护,但它总有可能在未来被弃用。现在选择迁移到 PDO 意味着您以后不必迁移到它并更新您的代码两次。我使用 PDO,你也应该使用! 安装和配置 PDO一旦决定要对代码进行现代化改造,就需要确保正确设置和配置 PDO。正如我之前提到的,PDO 由两部分组成:暴露接口的扩展本身和特定于数据库的低级驱动程序。存在用于不断增长的数据库列表的驱动程序,包括 MySQL。 PDO 和特定于 SQLite 的驱动程序应该是从 5.1.0 版开始的默认 PHP 安装的一部分,并且仍然需要安装特定于 MySQL 的驱动程序,但是大多数 Linux 发行版通常对如何编译和打包 PHP 有不同的想法。事实上,许多主要发行版现在都将 MySQL 扩展、MySQLi 扩展和 MySQL PDO 驱动程序打包在同一个包中。如果您在这样的系统上使用 MySQL,那么很可能已经为您设置了 PDO。
在 Windows 上,所有 PDO 驱动程序都包含在 ext 文件夹中,该文件夹是您从预编译二进制文件的存档中安装 PHP 时创建的。您只需要
在更坏的情况下,总是可以自己编译驱动程序。确保 MySQL 库和其他开发文件已安装并可在您的构建环境中访问,因为人们在尝试编译某些东西时遇到的大多数问题都是在编译器找不到各种头文件或要链接的库时导致的。 基本查询使用 MySQL 扩展的函数处理数据库的基本工作流程可以被认为是一个 5 步过程:
使用 PDO,可以遵循相同的过程,如下所示:
连接到服务器并使用 PDO 选择数据库的过程是使用 DSN 而不是 另请注意, 虽然有时您可以在不释放结果资源的情况下逃脱,但 挖掘(稍微)更深到目前为止所涵盖的内容足以让您开始尽可能快速、轻松地将 PHP 应用程序从 MySQL 迁移到 PDO,但是 PDO 的内容比我向您展示的要多。我还想强调 PDO 的其他一些您可能会发现有用的特性:准备好的语句和错误处理。 准备好的报表准备好的语句是将查询表示为对象。将查询表示为对象的好处是可以将额外的逻辑与它相关联,否则对于平面字符串表示而言,这些逻辑很难管理。例如,您可以在查询中指定占位符,然后将其绑定到脚本中的变量。如果您多次运行相同的查询以满足请求但使用不同的参数,这将很有帮助。查询只需要准备一次,但可以随着变量值的变化以不同的值运行多次。
参数不必用准备好的语句引用或转义,因为底层驱动程序会自动为您引用和转义任何绑定参数。正因为如此,许多人喜欢使用准备好的语句来防范 SQL 注入漏洞,即使查询只执行一次。 错误处理您可以使用 PDO 指定三种不同的错误处理范例之一
模式是:
无论设置哪种模式,都会设置一个内部错误代码,您可以使用and对象的
概括现在您应该具备开始从旧的 MySQL 扩展迁移到新的 PDO 扩展所需的基本知识。您已经看到,虽然大部分时间 PDO 已经可用,但如果由于某种原因它不可用,则很容易设置。您还看到了连接到 MySQL 数据库服务器、发出查询和接收结果是多么容易。当然,这只是一个实用的概述;要了解更多关于 PDO 必须提供什么以及如何利用它的信息,我鼓励您阅读 php.net 上的可用文档。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:42:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |