peteujah / php-search-controller
PHP 高级 MySQL 数据库搜索,以执行搜索操作。
1.8
2024-06-05 00:48 UTC
Requires
- php: ^7.0 || ^8.0
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
切分为单独的搜索项 Foo
和 Bar
$search->split()
将数据库列键映射到搜索
$search->setParameter(array)
在将搜索附加到查询字符串之前设置初始 SQL 查询
$search->setIniQuery('SELECT * FROM ...')
参考
指定搜索运算符 $search->setOperators(SearchController::HAVE_ANY_QUERY)
使用方法 new SearchController(SearchController::OR)
初始化搜索类