jpi/database

PDO 的简单扩展

v2.0.0 2024-04-15 22:24 UTC

This package is auto-updated.

Last update: 2024-09-06 23:06:37 UTC


README

CodeFactor Latest Stable Version Total Downloads Latest Unstable Version License GitHub last commit (branch)

PDO 的简单扩展,包含一些额外的便捷方法。

安装

使用 Composer

$ composer require jpi/database 

用法

额外方法

  • prep(string, array): PDOStatement: 当你需要将一些参数绑定到一个查询时
  • run(string, array): PDOStatement: 当你将一些参数绑定到一个查询并想要执行它时
  • selectAll(string, array): array: 对于 SELECT 查询,返回一个包含所有找到的行的多维数组
  • selectFirst(string, array): array: 对于具有 LIMIT 1SELECT 查询,返回找到的第一行(如果有的话)的关联数组
  • getLastInsertedId: int|null: 在 INSERT 查询后很有用,返回新插入行的 ID

重写方法

  • exec(string, array): int: 对于 INSERTUPDATEDELETE 查询,返回受影响的行数

所有方法(除 getLastInsertedId 外)都接受查询作为第一个参数(必需),以及要绑定到查询的参数数组(可选)。

示例

(假设实例已被创建并设置为名为 $connection 的变量)

selectAll

$rows = $connection->selectAll("SELECT * FROM users;");

/**
$rows = [
    [
        "id" => 1,
        "first_name" => "Jahidul",
        "last_name" => "Islam",
        "email" => "jahidul@jahidulpabelislam.com",
        "password" => "password123",
        ...
    ],
    [
        "id" => 2,
        "first_name" => "Test",
        "last_name" => "Example",
        "email" => "test@example.com",
        "password" => "password123",
        ...
    ],
    ...
];
*/

selectFirst

$row = $connection->selectFirst("SELECT * FROM users LIMIT 1;");

/**
$row = [
    "id" => 1,
    "first_name" => "Jahidul",
    "last_name" => "Islam",
    "email" => "jahidul@jahidulpabelislam.com",
    "password" => "password",
    ...
];
*/

exec

// INSERT
$numberOfRowsAffected = $connection->exec(
    "INSERT INTO users (first_name, last_name, email, password) VALUES (:first_name, :last_name, :email, :password);",
    [
        "first_name" => "Jahidul",
        "last_name" => "Islam",
        "email" => "jahidul@jahidulpabelislam.com",
        "password" => "password",
    ]
);

// UPDATE
$numberOfRowsAffected = $connection->exec(
    "UPDATE users SET first_name = :first_name WHERE id = :id;",
    [
        "id" => 1,
        "first_name" => "Pabel",
    ]
);

// DELETE
$numberOfRowsAffected = $connection->exec("DELETE FROM users WHERE id = :id;", ["id" => 1]);

支持

如果你觉得这个库有趣或有用,请分享这个库:在社交媒体上分享,在 GitHub 上点赞等。

如果你发现任何问题或有任何功能请求,你可以打开 问题 或给我发邮件 me @ jahidulpabelislam.com 😏。

作者

许可证

本模块采用通用公共许可证 - 有关详细信息,请参阅 许可证 文件。