codesvault / howdy-qb
WordPress 的 Mysql 查询构建器
1.6.2
2024-02-11 07:35 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpcompatibility/php-compatibility: ^9.3
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
- symfony/var-dumper: ^5.4
- wp-coding-standards/wpcs: ^2.3
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"