Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
搜索多个单词PHP mysqli_Php_Mysql_Mysqli_Full Text Search_Full Text Indexing - Fatal编程技术网

搜索多个单词PHP mysqli

搜索多个单词PHP mysqli,php,mysql,mysqli,full-text-search,full-text-indexing,Php,Mysql,Mysqli,Full Text Search,Full Text Indexing,我有一个简单的搜索PHP脚本,但它的工作原理如下: 例如: 我在数据库中有“dvd creator设置”,但如果我想找到它,我需要写入整个字符串,如“dvd”或“dvd creator”。 是否有可能使其适用于“dvd creator”或“creator setup”之类的查询 if(isset($\u POST['searchh'])){ $searchValue=$_POST['search']; 如果($conn->connect\u错误){ echo“连接失败:”.$conn->conn

我有一个简单的搜索PHP脚本,但它的工作原理如下:

例如: 我在数据库中有“dvd creator设置”,但如果我想找到它,我需要写入整个字符串,如“dvd”或“dvd creator”。 是否有可能使其适用于“dvd creator”或“creator setup”之类的查询

if(isset($\u POST['searchh'])){
$searchValue=$_POST['search'];
如果($conn->connect\u错误){
echo“连接失败:”.$conn->connect\u错误;
}否则{
$sql=“从文件名为“%$searchValue%”的pubfiles中选择*;
$result=$conn->query($sql);
而($row=$result->fetch_assoc()){
echo“文件名:
大小:.$row[“Size”]。.MB
上传人:.$row[“上传人”]。”
--------------
; } }
您可以在
文件名
列上使用全文索引

alter table pubfiles add fulltext(filename);
它允许您使用
MATCH()…根据
语法查询文件名列

select * from pubfiles where match(filename) against ('dvd creator');
这将找到“dvd”、“dvd创建者”、“dvd创建者设置”、“创建者”

还有一个
布尔模式
,允许您根据需要标记所有单词

select * from pubfiles
  where match(filename) against ('+dvd +creator' IN BOOLEAN MODE);
这将只返回“dvd creator”和“dvd creator setup”

  • 相关的小提琴-

不,SQL中没有。但是您可以使用字符串插值(
“..%$searchValue%”“
)执行
操作,其中文件名(如“%dvd%”和文件名(如“%creator%”)将您暴露在SQL注入中。想象有人向您的搜索字段输入类似的内容-
”;删除表用户;
select * from pubfiles
  where match(filename) against ('+dvd +creator' IN BOOLEAN MODE);