首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP :无法从MYSQL数据库获得精确匹配

问PHP :无法从MYSQL数据库获得精确匹配
EN

Stack Overflow用户
提问于 2016-02-09 13:00:29
回答 1查看 855关注 0票数 2

这个php确实给了我一些问题。我想从数据库中返回数据,我希望它显示来自数据库的主要数据,我希望它显示来自数据库的数据,以匹配从数据库输入的信息--例如,如果我输入名称"Paul Mason“并单击search按钮,它连接到数据库并回显站点上的信息。

下面显示了我编写的代码。

代码语言:javascript
复制
<html>
<title>Search Records</title>
<head>
<body>
    <form name="" id="" method="post" action="search.php"/>
    <p> Enter Student name : <input type="text" name="fullname" id="fullname"/>
    <input type="submit" name="senda" value="Search Data" />

</form>

<?php
if(isset($_POST['senda'])){

    include 'mysqlconn.php';
    $con = mysqli_connect($host, $dbuser, $pass, $db) or die('Cannot Connect');

    $name = $_POST['fullname'];

        $sql = "SELECT * FROM scores WHERE MATCH(fullname) AGAINST('$name')";
        $result = mysqli_query($con,$sql)  or die("Error: ".mysqli_error($con));

    while($row = mysqli_fetch_array($result,MYSQLI_ASSOC))
    {
        printf("%s (%s)\n", $row['Fullname'] ." ". $row['studentNo'] ." ". $row['SubjectName'] ." ". $row['GPA'] ." ". $row['CGPA'] ." ". $row['SCORE']);

        mysqli_free_result($result);
    }
     mysqli_close($con);
    }

?>
</body>
</head>
</html>

相反,它显示了其他类似的东西:Error: Can't find FULLTEXT index matching the column list

什么是错的,我需要有人来纠正我的编程!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 13:20:36

在要引用的列上没有全文索引。对于单个列搜索,如果不希望创建索引,请尝试(也转换为为您准备的语句):

对于松散的比赛:

代码语言:javascript
复制
$con = new mysqli($host, $dbuser, $pass, $db) or die('Cannot Connect');
$name = $_POST['fullname'];
$query = $con->prepare("SELECT * FROM scores WHERE fullname LIKE '%$name%'");
$query->execute();

准确匹配:

代码语言:javascript
复制
$con = new mysqli($host, $dbuser, $pass, $db) or die('Cannot Connect');
$name = $_POST['fullname'];
$query = $con->prepare("SELECT * FROM scores WHERE fullname = '$name'");
$query->execute();

如果您确实有或创建了一个完整的文本索引,那么它将工作,但仍然建议准备查询以防止注入攻击:

代码语言:javascript
复制
$con = new mysqli($host, $dbuser, $pass, $db) or die('Cannot Connect');
$name = $_POST['fullname'];
$query = $con->prepare("WHERE MATCH(fullname) AGAINST('$name')");
$query->execute();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35292767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档