codesvault/howdy-qb

WordPress 的 Mysql 查询构建器

1.6.2 2024-02-11 07:35 UTC

This package is auto-updated.

Last update: 2024-09-11 09:03:44 UTC


README

关系型数据库查询构建器用于 WordPress。WP 查询构建器使用 PDO 进行数据库查询。它没有任何第三方查询构建器或其他 composer 库的依赖。


文档

文档网站在此
此查询构建器也用于 Kathamo 框架。Kathamo 是一个用于 WordPress 插件开发的现代框架。


示例

创建表

DB::create('querybuilder')
	->column('ID')->bigInt()->unsigned()->autoIncrement()->primary()->required()
	->column('user_id')->bigInt()->unsigned()->required()
	->column('name')->string(255)->required()
	->column('email')->string(255)->nullable()
	->foreignKey('user_id', 'users.ID', 'cascade')
	->index(['ID'])
	->execute();

插入语句

DB::insert('querybuilder', [
    [
        'name' => 'Keramot UL Islam',
        'email' => 'keramotul.@gmail.com',
    ]
]);

更新语句

DB::update('querybuilders', [
    'name' => 'Keramot UL',
    'email' => 'keramotul.islam@gmail.com'
])
->where('ID', '=', 10)
->andWhere('name', '=', 'Abm Sourav')
->execute();

选择语句

$result =
DB::select('qb.ID', 'qb.name, qb.email')
    ->from('querybuilders')
    ->alias('qb')
    ->groupBy('name')
    ->get();


// *** where clouse
$result =
DB::select('posts.ID', 'posts.post_title')
    ->distinct()
    ->from('posts posts')
    ->where('posts.post_status', '=', 'publish')
    ->orderBy('post_title', 'DESC')
    ->limit(10)->offset(2)
    ->get();

// *** JOIN
DB::select('users.display_name name')
    ->count('posts.ID', 'posts')
    ->from('users users')
    ->join('posts posts')
    ->where('posts.post_status', '=', 'publish')
    ->andWhere('posts.post_type', '=', 'post')
    ->get();

// raw sql
DB::select('posts.post_title')
    ->from('posts posts')
    ->raw("WHERE posts.post_type = 'post'")
    ->andWhere('posts.post_status', '=', 'publish')
    ->raw("LIMIT 10")
    ->get();

删除语句

// delete one row
DB::delete('posts')
    ->where('ID', '=', 3)
    ->execute();

// delete all records
DB::delete('posts')->execute();

删除语句

DB::drop('posts');
DB::dropIfExists('terms');

修改语句

DB::alter('cv_users')
    ->modify('name', 'username')->string(455)->required()
    ->modify('settings')->json()
    ->execute();


单实例

表达式也可以通过 DB 类的单实例执行。这样做数据库连接只会建立一次。

$db = new DB();

$result =
$db::select('posts.ID', 'posts.post_title')
    ...

$db::create('meta')
    ...


数据库连接

默认情况下,数据库连接将自动设置。但您也可以手动输入数据库配置。这样,您也可以从终端调试数据库查询。

$db = DB::setConnection(
	[
		"dbhost"        => 'mysql_host',
		"dbname"        => 'database_name',
		"dbuser"        => 'database_user',
		"dbpassword"    => 'database_password',
		"prefix"        => 'database_table_prefix'
	]
);


驱动程序

默认驱动程序是 pdo。但如果你想使用 wpdb(它使用 Mysqli),你也可以通过更改驱动程序来实现。

$db = new DB('wpdb');

$db::select('posts.post_title')
    ->from('posts posts')
    ->get();


为贡献者设置的 Dev 环境配置

想为此包做贡献吗?请按照以下步骤操作。

  • 创建一个本地的 WordPress 环境设置。
  • 创建一个基本的插件。
  • 在插件中运行 composer init
  • git@github.com:CodesVault/howdy_qb.git 克隆到插件文件夹。
  • 在插件的 composer.json 中添加本地包的仓库。
    "repositories": [
    	{
    		"type": "path",
    		"url": "./howdy_qb",
    		"options": {
    			"symlink": true
    		}
    	}
    ],
            
  • 要求此包。 composer require "codesvault/howdy-qb @dev"