rexshijaku/sql-to-ci-builder

SQL 到 Codeigniter 查询构建器

1.0.4 2021-06-14 21:04 UTC

This package is auto-updated.

Last update: 2024-09-24 00:00:17 UTC


README

SQL 到 Codeigniter 查询构建器,一个用 PHP 编写的转换器

支持

Buy Me A Coffee

功能

  • 将 SQL 查询转换为 Codeigniter 查询构建器。
  • 协助根据 Codeigniter 文档中的说明创建最佳查询。
  • 提供选项,用于生成不同的结果。

支持

  • Codeigniter 3
  • Codeigniter 4

演示

在线演示

实时演示和免费使用请访问 这里

开始使用

手动下载安装

下载仓库并通过 composer.json 安装所需的包。

Packagist

您也可以通过运行以下命令从 Packagist 安装它

composer require rexshijaku/sql-to-ci-builder

使用方法

简单示例
<?php

use RexShijaku\SQLToCIBuilder\SQLToCIBuilder;

require_once dirname(__FILE__) . './vendor/autoload.php';

$options = array('civ' => 4);
$converter = new SQLToCIBuilder($options);

$sql = "SELECT COUNT(*) FROM members";
echo $converter->convert($sql);

这将生成以下结果

$this->db->countAll('members');
更复杂的示例
$sql = "SELECT * FROM members WHERE age > 30 
                            OR (name LIKE 'J%' OR (surname='P' AND name IS NOT NULL)) AND AGE !=30";
$converter->convert($sql);

这将生成以下结果

$db->table('members')
 ->where('age >',30)
 ->orGroupStart()
     ->like('name','J','after')
     ->orGroupStart()
         ->where('surname','P')
         ->where('name !=',null)
     ->groupEnd()
 ->groupEnd()
 ->where('AGE !=',30)
 ->get();
注意

在这两个示例中使用了 Codeigniter 4。如果您需要更改它,或更全面地了解提供的选项,请参阅以下选项部分。在examples文件夹中提供了针对每个用例的数十个示例,包括 3 版本和 4 版本。

选项

以下简要解释了一些重要选项

它是如何工作的?

SQL-To-CI-Builder 建立在 PHP-SQL-Parser 之上。虽然 PHP-SQL-Parser 负责解析给定的 SQL 查询作为输入。PHP-SQL-Parser 的结果是 SQL-To-CI-Builder 的输入。

结构有三个主要部分

  1. 提取器类 - 帮助以更易于理解和处理的方式提取 SQL 查询部分。
  2. 构建器类 - 帮助构建查询构建器方法。
  3. 创建者 - 协调提取器和构建器之间的过程,以生成查询构建器部分。

已知问题

  • 并非在所有情况下都进行了测试。它们应该被添加。
  • 错误处理差。

贡献

请随时为开发、测试或最终错误报告做出贡献。

支持

有关 Yazan - SQL-To-CI-Builder 的一般问题,请通过 @rexshijaku 发推文或给我发电子邮件rexhepshijaku@gmail.com。要快速了解教程,请查看存储库中提供的examples文件夹。

作者

Rexhep Shijaku

感谢

所有为创建和持续改进 PHP-SQL-Parser 做出贡献的贡献者,没有它,这个项目将难以实现。

纪念

纪念在 2021 年以色列-巴勒斯坦危机中失去的无辜生命(包括仅两岁的 Yazan al-Masri)。

许可

MIT 许可证

版权所有 (c) 2021 | Rexhep Shijaku

特此授予任何获得此软件及其相关文档文件(“软件”)副本的个人以免费使用软件的自由,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供软件的个人这样做,前提是受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任是基于合同、侵权或其他原因,无论此类责任源于、因之而产生或与之有关软件或软件的使用或其他处置。