ngdang/simple_querybuilder

由 infktern 开发的简单查询构建器

dev-main 2022-09-28 06:45 UTC

This package is auto-updated.

Last update: 2024-09-28 10:55:55 UTC


README

题目:创建简单查询构建器

作者:Nguyễn Đoàn Đăng

下载代码并运行代码,请访问 https://github.com/dnang36/simple_querybuilder

安装

composer require ngdang/simple_querybuilder

使用

  • 使用 composer 自动加载器
  • 在 $config 中更改 dbname, password 信息
require 'vendor/autoload.php';
$config = [
    'host' => 'localhost',
    'dbname' => 'pdotest',
    'charset' => 'utf8',
    'username' => 'root',
    'password' => '12345678',
];
  • 使用 config::connect($config) 初始化查询构建器
$query = new QueryBuilder(config::connect($config));
  • 使用查询构建器
// Lấy tất cả dữ liệu từ bảng user
$result = $query->select('user')->all();
// lấy user có id > 3 giới hạn là 3 user
$result = $query->select('user')
    ->where([['id','>',3]])
    ->limit(3)
    ->all();
print_r($result);
//thêm user mới:
$query->insert('user',[
    ['name','address'],
    ["hung","thai binh"]
])->go();

//sửa user có id = 4
$query->update('user',[
    'name'=>'vnp',
    'address'=>'102 thái thinh'
    ])->where([['id','=',4]])
    ->go();
    
//xoá user id = 18;
$query->delete('user')
    ->where([['id','=',18]])
    ->go();

- 结果

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => dang
            [address] => ha noi
        )
)
  • 与 PDO 一起使用
$user = ngdang\dto\test\user::query(clone $query)->select()->all();
print_r($user);
  • PDO 的结果
[0] => ngdang\dto\test\user Object
      (
         [attributes:protected] => Array
            (
               [id] => 1
               name] => dang
               [address] => ha noi
            )

               [original:protected] => Array
               (
               )

            [casts:protected] => Array
                (
                )

                [table:protected] => user
      )

掌握的知识

1. 简介 PDO - PHP 数据对象

  • PHP 数据对象 (PDO) 是一个提供统一方式来处理多种数据库的类。当使用 PDO 时,您不需要编写特定的 SQL 命令,而是使用 PDO 提供的方法,这可以节省时间并使数据库转换变得容易,只需更改连接字符串(数据库连接字符串)即可。

1.1. 连接数据库

  • 每种数据库管理系统(Database Management System- DBMS)将具有不同的连接方法(有些需要用户名、密码、数据库路径、端口,有些则不需要)。大多数流行 DBMS 的连接字符串都具有以下格式
$conn = new PDO('mysql:host=localhost;dbname=pdo', $username, $password);
  • 其中 mysql 是 DBMS 名称,localhost 表示数据库位于同一服务器上,pdo 是数据库名称。$username 和 $password 是两个包含认证信息的变量。
  • 当不再需要与数据库进行操作时,只需将 $conn 变量设置为 null 即可断开连接;$conn = null;

1.2. 选择数据 - 从数据库“读取”数据

  • 当从数据库读取数据时,PDO 将通过 fetch() 方法返回数据,其结构为数组(array)或对象(object)。
  • FETCH_ASSOC: 此类型 fetch 将创建一个按列名(即数组的键)索引的关联数组,类似于使用 MySQL/MySQLi 扩展。

2. 查询构建器

  • 查询构建器是一种技术,它可以帮助程序员快速、准确地构建关系型数据库查询,而不是手动编写查询。