• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

比较PHP数据库抽象层和CRUD插件

在本文中,我们将研究 php 的不同数据库抽象层。我们还将研究几个 PHP CRUD 数据库插件,它们可以让您在与mysql数据库交互时更轻松。

什么是数据库抽象层?

顾名思义,数据库抽象层是位于应用程序和底层数据库之间的层。您将使用数据库抽象层与数据库进行交互。数据库抽象层的好处是您可以切换底层数据库后端,而无需担心应用程序中的代码更改。数据库抽象层还简化了数据库代码,使连接和更新数据库变得更容易。

让我们看一个例子来理解这一点。假设您在应用程序开发的初始阶段选择了 Mysql 作为数据库后端。您没有在应用程序中使用任何数据库抽象层,因此当您执行数据库操作时,您最终将编写特定于 MySQL 后端的代码。

如果出于某种原因,您需要将数据库后端从 MySQL 更改为 Oracle,该怎么办?这种转变并不容易。您必须做的第一件事是查看应用程序中 MySQL 特定代码的每一部分。您必须检查与 MySQL 数据库后端交互的每一行代码,并将其替换为新数据库的等效代码。

另一方面,如果您已经使用数据库抽象层与数据库后端进行交互,那么在眨眼之间就可以切换到其他一些兼容 ODBC 的数据库后端。您只需更改连接设置以反映新的数据库后端。因此,如您所见,数据库抽象层通过让您与不同的数据库后端对话来隐藏复杂性。

看一下下面的图表,以了解我们到目前为止所讨论的内容。

比较PHP数据库抽象层和CRUD插件  第1张

如您所见,数据库抽象层位于应用程序和实际数据库之间,因此应用程序不需要知道底层数据库如何工作的细节。

数据库抽象层选项

接下来,我们将研究您可以在日常应用程序开发中使用的几个选项。让我们快速浏览一下我们将在本文其余部分讨论的选项。

  • PDO

  • DBAL 原则

  • ADOdb

  • 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

  • sqlite

  • 细雨

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
  • 购买的最佳 PHP 数据库抽象脚本
    • PDOModel:数据库抽象和帮助 PHP 类
    • xCRUD:数据管理系统
    • PDO CRUD:高级 PHP CRUD 应用程序
  • 结论