peteujah/php-search-controller

PHP 高级 MySQL 数据库搜索,以执行搜索操作。

1.8 2024-06-05 00:48 UTC

This package is auto-updated.

Last update: 2024-09-05 01:17:21 UTC


README

PHPSearchController 是一个简单的 PHP 类,用于搜索 MySQL 数据库,它可以通过接收定义数据库表字段和搜索字段值的参数来构建 SQL 查询以执行 MySQL 数据库搜索。

该类生成用于构建 SQL 查询以执行数据库搜索的 SQL 条件,这些条件基于参数中定义的表字段和字段值来匹配记录,然后使用 SQL 操作符(如 AND, OR, NAND, LIKE, NOR & FIND_IN_SET)组合多个条件,并返回相应的搜索查询。

安装

通过 Composer 安装非常简单。

composer require peterujah/php-search-controller

用法

使用您喜欢的搜索方法初始化该类,默认方法为 SearchController::OR

use Peterujah\NanoBlock\SearchController;
$search = new SearchController();

设置您喜欢的搜索运算符,默认为 SearchController::END_WITH_QUERY

$search->setOperators(SearchController::HAVE_ANY_QUERY);

要执行数据库搜索,您可以构建如下所示的搜索查询。

$searchQuery = "PHP Code";
$search->setQuery($searchQuery)->split();
$search->setParameter(array(
    'code_title', 
    'code_description', 
    'code_info'
));
//var_export($search->getQuery());

要使用 MySQL 的 FIND_IN_SET 搜索标签,构建如下示例查询。

$searchQuery = "PHP Code";
$search->setQuery($searchQuery)->split();
$search->setTags("code_tags");
//var_export($search->getQuery());

设置初始查询并将搜索查询传递到您的 MySQL 连接中

$search->setIniQuery("SELECT * FROM code WHERE id = 1323");
$db->conn()->prepare($search->getQuery());
$db->conn()->execute();		
$result = $db->conn()->getAll();
$db->conn()->free();

或者,在您的 MySQL 连接中构建其他 SQL 查询,如下所示

$db->conn()->prepare("
    SELECT * FROM code 
    {$search->getQuery()}
    AND id = 1323
");
$db->conn()->execute();		
$result = $db->conn()->getAll();
$db->conn()->free();

其他方法

通过检查是否指定了初始查询来确定需要哪个起始子句,返回计算出的 SQL 搜索查询。

$search->getQuery()

设置您的搜索关键字

$search->setQuery("Foo Bar")

将搜索关键字 Foo Bar 切分为单独的搜索项 FooBar

$search->split()

将数据库列键映射到搜索

$search->setParameter(array)

在将搜索附加到查询字符串之前设置初始 SQL 查询

$search->setIniQuery('SELECT * FROM ...')

参考

指定搜索运算符 $search->setOperators(SearchController::HAVE_ANY_QUERY)

使用方法 new SearchController(SearchController::OR) 初始化搜索类