jpgerber/chaos-crud

一个简单的 CRUD 处理器。

0.2.3 2023-12-08 22:37 UTC

This package is auto-updated.

Last update: 2024-09-09 00:26:20 UTC


README

<title>Chaos CRUD 读取文件内容</title> <style> :root { font-size: 1.1rem; } </style>

Chaos CRUD 读取文件内容

创建 - 读取 - 更新 - 删除

实例化

这可能会根据您如何自动加载类(如果有的话)而略有不同。假设您使用 Composer 并已正确加载了命名空间,则可以通过以下方式实例化:

$db = new Chaos\Network\CRUD();

或者,如果您正在使用我的 classDeclarations.php 文件,则不需要实例化它;然而,当使用 db()-> 时,它将只运行类的单个实例。

应注意的是,连接信息可以通过以下 3 种方式之一获取

  • 在实例化期间:db('localhost','db_name','db_username','db_password')
  • 使用 ENV:$_ENV['DB_HOST'], $_ENV['DB_NAME'], $_ENV['DB_USER'], $_ENV['DB_PASS']
  • 使用 SESSIONs:$_SESSION['DB_HOST'](与 ENV 键相同)

注意

对于下一部分,我将假设您正在使用我的 classDeclarations.php 方法。如果您不是,则只需用您实例化的类替换 db() 即可

db()->table()

$db = new Chaos\Network\CRUD();
$db->table();

方法链

类是为了实现方法链而构建的,以便使过程更加流畅。

示例

db()->table('users')
->create(['username'=>'jdoe',
          'password'=>'test'])
->query();

替代示例 没有 方法链

db()->table('users');
db()->create(['username'=>'jdoe',
              'password'=>'test']);
db()->query();

它们功能相同。

方法

让我们根据 CRUD 的每个部分的用法来分析这些方法。

所有方法

  • table('users') // 在每次调用 ->query() 之前必须执行此行 每次
  • query(); // 这是所有方法的触发器。它 必须 是链的最后一部分,或者在所有非链式方法完成之后。

创建

  • getLastID(bool) // 这让查询知道你是否想要返回插入数据的最后一行的主键 id。确保如果你在链式调用中,你从变量赋值开始,以便将 lastID 放入其中。
    • $lastID = db()->table('users')->getLastID(true)->insert(['username','bob'])->query();
  • create(['column' => 'value']) // 你可以列出你需要的东西,但它们应该始终以关联数组格式列出,即列和要分配给该列的值。

创建是最简单的一种。没有 WHERE、LIMIT 等等。

读取

用于从表中 SELECT 数据

  • addColumn() // 你可以在这里添加你想要过滤的列。你可以使用字符串或字符串数组(不是关联数组),例如:(['username','password')。如果你不想要过滤它,请将其留空。系统将默认为 *。
  • addCondition($column, $value, $operand) // 此函数需要三个参数,用于WHERE语句:要过滤的列、想要包含的值和将要使用的运算符。('username', 'jdoe', '=') || ('username', 'jd%', 'LIKE') - 注意'LIKE'运算符中的'%'符号,需要时需要包含通配符'%'。此外,'='是默认值,所以如果只发送两个属性,它将假定使用'='
  • addOrder($string) // 接受单个字符串参数,但如果需要多个ORDER BY,可以多次使用。
  • addDir('DESC') // 默认为'ASC',但如果需要降序排列,可以在这里设置。
  • addLimit(2) // 将返回的结果数量限制为提供的整数。必须大于0且为整数(不是浮点数、字符串或其他类型)。
  • read() // 注意从create到read的变化 - 这就是类知道你想要执行哪种查询的方式。

更新

  • addCondition()
  • setSafe(bool) // 这是一个保护方法,可以帮助你避免意外更新所有行。默认为true(除非声明limit(),否则更改的数量限制为1行)
  • limit()
  • update(['column'=>'new value']) // 与create一样,你可以根据需要放入关联数组中的行数。每行代表一个列。
  • 更新

删除

  • addCondition()
  • setSafe()
  • addLimit()
  • delete()

清空

清空表并将自增重置为1的唯一所需项是表名
// db()->table('tableName')->empty()->query();

说明

  • setSafe(bool) - 如果你有一个环境变量值$_ENV['SAFETY_LIMIT'],并且没有使用addLimit()设置限制,则默认限制为你的SAFETY_LIMIT值。否则,默认为1。
    • 更新和删除的limit顺序(当setSafe(true)或未设置时)

    • addLimit(int)
    • $_ENV['SAFETY_LIMIT']
    • 1