在本文中,我们将研究 php 的不同数据库抽象层。我们还将研究几个 PHP CRUD 数据库插件,它们可以让您在与mysql数据库交互时更轻松。
什么是数据库抽象层?
顾名思义,数据库抽象层是位于应用程序和底层数据库之间的层。您将使用数据库抽象层与数据库进行交互。数据库抽象层的好处是您可以切换底层数据库后端,而无需担心应用程序中的代码更改。数据库抽象层还简化了数据库代码,使连接和更新数据库变得更容易。
让我们看一个例子来理解这一点。假设您在应用程序开发的初始阶段选择了 Mysql 作为数据库后端。您没有在应用程序中使用任何数据库抽象层,因此当您执行数据库操作时,您最终将编写特定于 MySQL 后端的代码。
如果出于某种原因,您需要将数据库后端从 MySQL 更改为 Oracle,该怎么办?这种转变并不容易。您必须做的第一件事是查看应用程序中 MySQL 特定代码的每一部分。您必须检查与 MySQL 数据库后端交互的每一行代码,并将其替换为新数据库的等效代码。
另一方面,如果您已经使用数据库抽象层与数据库后端进行交互,那么在眨眼之间就可以切换到其他一些兼容 ODBC 的数据库后端。您只需更改连接设置以反映新的数据库后端。因此,如您所见,数据库抽象层通过让您与不同的数据库后端对话来隐藏复杂性。
看一下下面的图表,以了解我们到目前为止所讨论的内容。
如您所见,数据库抽象层位于应用程序和实际数据库之间,因此应用程序不需要知道底层数据库如何工作的细节。
数据库抽象层选项
接下来,我们将研究您可以在日常应用程序开发中使用的几个选项。让我们快速浏览一下我们将在本文其余部分讨论的选项。
PDO
DBAL 原则
ADOdb
P dom模型:数据库抽象和帮助 PHP 类
xCRUD 数据管理系统
PDO Crud:高级 PHP CRUD 应用程序
前三个选项——PDO、Doctrine DBAL 和 ADOdb——是流行的开源选项并且可以免费使用。其他三个是CodeCanyon提供的商业选项,因此如果您想使用它们,则必须为它们付费。另一方面,这些提供了许多功能,允许您在应用程序中快速设置基本脚手架。此外,与它们提供的相比,它们的价格合理,我们将在本文后面看到。
快速浏览热门和免费选项
在本节中,我们将介绍几个流行且免费的选项,您可以将它们用作 PHP 应用程序中的数据库抽象层。
PDO
PDO(PHP 数据对象)库是一个 PHP 扩展,它提供了一个接口来处理不同的数据库后端。为了使用 PDO,您需要安装要在应用程序中使用的特定于数据库的 PDO 驱动程序。
因此,如果你想使用 PDO 扩展来处理 MySQL 数据库,你需要确保你已经启用了 php_pdo 扩展,这是一个核心 PDO 扩展,以及 pdo_mysql 扩展,它允许你与MySQL 服务器使用 PDO 数据库抽象层。
当然,如果您想使用 MySQL 以外的数据库,则必须为该数据库后端安装 pdo 扩展。有关 PDO 中支持的数据库驱动程序的更多信息,您可以访问pdf 手册中的 PDO 驱动程序页面,其中包含您需要了解的所有内容。
DBAL 原则
Doctrine DBAL(数据库抽象层)库是另一个流行的数据库抽象库,它提供了 PDO 的包装器。与单独使用纯 PDO 扩展相比,Doctrine DBAL 提供了易于使用的api方法和一些附加功能。
Doctrine DBAL 支持的数据库供应商列表是:
MySQL
甲骨文
微软 SQL 服务器
发布greSQL
SAP Sybase SQL Anywhere
细雨
Doctrine DBAL 是在 Doctrine 项目下开发的,该项目还提供了一个位于 Doctrine DBAL 顶部的 ORM(对象关系映射器)。Doctrine ORM 是一个允许您以面向对象的方式编写数据库查询的工具。其实ORM本身就是一个很宽泛的话题,这里就不赘述了,以后会写一篇ORM的文章。
ADOdb
最后,ADOdb 是一个非常流行的类库,也是这个领域的老玩家。它是一个外部库,如果您希望使用它,您首先必须下载并配置您的设置。ADOdb 还支持多种数据库作为您的数据库后端。
除了提供查询和更新数据库的组件外,它还提供了面向对象的 Active Record 库,它作为 ORM 的工作方式与我们之前在 Doctrine ORM 部分中讨论的方式相同。
此外,您必须为此库安装相应的数据库后端驱动程序,方法与安装 PDO 扩展的方式相同。例如,如果您想使用 MySQL 数据库,则必须在 PHP 中安装 mysqli 驱动程序。
所以这是对几个有用的免费选项的快速浏览。在下一节中,我们将介绍一些流行的商业选项,它们提供的功能远不止数据库抽象。
购买的最佳 PHP 数据库抽象脚本
在本节中,我们将讨论一些您可以为数据库抽象库选择的高级选项。事实上,我们选择的选项不仅可以用作数据库抽象库——它们提供的功能远不止这些。
PDOModel:数据库抽象和帮助 PHP 类
PDOModel库是建立在 PDO 扩展之上的数据库抽象和帮助 PHP 类。它是一个出色的包装器,它允许您执行插入、更新、删除和选择操作,而无需编写任何 SQL 查询。因此,它提供了简单性和可读性。事实上,它提供了包装函数,允许您使用简单的函数执行复杂的操作,而无需编写实际的 SQL 查询。
目前,它支持 MySQL、postgres、SQlite 和 SQL Server 数据库后端。它支持事务和批处理操作,如果您希望从外部源导入数据库,这是一项必不可少的功能。最重要的是,它允许您将数据导出为csv、Excel、pdf、XML 等格式。
让我们快速看一下下面的代码,它演示了使用 PDOModel 助手是多么容易。
<?php // initialize the PDOModel class $pdoModelObj = new PDOModel(); // connect to a database $pdoModelObj->connect("host", "username", "password", "database_name"); // querying database [select * FROM users] $result = $pdoModelObj->select("users");
如您所见,使用 PDOModel 辅助类执行数据库操作是轻而易举的事。有关更多信息,您可以访问 CodeCanyon 上的官方 PDOModel 页面。
到目前为止,我们讨论的库都是数据库抽象层,但让我们也看看几个允许您轻松生成脚手架代码的 CRUD(创建、读取、更新和删除)插件。
xCRUD:数据管理系统
xCRUD 是一个简单而强大的 CRUD 生成器插件,专为 PHP 和 MySQL 编写。它允许您立即创建基本的脚手架代码,它甚至对非程序员也很有用。它的核心是使用 mysqli 扩展来处理不同的数据库操作。但是您无需担心底层的复杂性——您只需要使用 xCRUD 系统提供的易于使用的功能即可。
使用 xCRUD 插件时,您只需要设计数据库表,xCRUD 插件将处理其余部分。只需几行代码,您将拥有一个随时可用的 UI,允许您创建和更新记录。您还将获得一个列出所有记录的列表视图。
让我们快速浏览一下为 users 表生成 CRUD 方法所必须编写的代码。
<?php $xCRUD = Xcrud::get_instance(); $xCRUD->table('users'); echo $xCRUD->render();
这不是很整洁吗?只需几行代码,您就为 users 表生成了脚手架代码。你可以用这个插件做更多的事情,因为它有很多功能。您可以访问 CodeCanyon 上的官方插件页面以获取更多信息。
PDO CRUD:高级 PHP CRUD 应用程序
最后,让我们看看 PDO CRUD 插件,它也是一个支持 MySQL、Postgres 和 SQLite数据库后端的 CRUD 生成器插件。只需几行代码,该插件就能够生成漂亮且吸引人的 UI,让您可以轻松地对数据库执行日常操作。
顾名思义,它不仅仅是一个基本的 CRUD 生成器,而是一个完整的数据库应用程序模板。让我们快速浏览一下这个插件的几个强大功能:
内联编辑
文件上传
支持javascript插件
加入操作
搜索、分页和导出
多语言支持
还有很多
下面是用于生成基本 CRUD 接口的代码的快速浏览:
<?php $pdoCrudObject = new PDOcrud(); echo $pdoCrudObject->dbTable('users')->render();
而已!访问CodeCanyon 上这个 CRUD 插件的官方页面,了解这个插件的强大程度。
结论
在本文中,我们讨论了 PHP 中几个流行的数据库抽象层和 CRUD 生成器插件。
- 数据库抽象层选项
- PDO
- DBAL 原则
- ADOdb
- PDOModel:数据库抽象和帮助 PHP 类
- xCRUD:数据管理系统
- PDO CRUD:高级 PHP CRUD 应用程序