php - MySQL之类的查询不起作用?

标签 php mysql sql pdo

我在 PDO 中成功连接到我的 MySQL 数据库,目前我正在尝试让它在数据库中查询类似搜索查询的项目。

<?php
include ('connection.php');

function doSearch() {
    $output = '';
    if(isset($_POST['search'])) {
        $searchq = $_POST['search'];
        $searchq = preg_replace ("#[^0-9a-z]#i","",$searchq);
    $sql = "SELECT * FROM entries WHERE name LIKE :searchq or description LIKE :searchq or content LIKE :searchq";

    global $conn;
    $stmt = $conn->prepare($sql);
    $stmt->bindParam(":searchq",$searchq,PDO::PARAM_STR);
    $stmt->execute();
    $count = $stmt->rowCount();
 if($count == 0) {
            $output = 'No results found, buddy.';
        } else {
            while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
                $eName = $row['name'];
                $eDesc = $row['description'];
                $eCont = $row['content'];
                $id = $row['id'];
                $elvl = $row['level'];
                $ehp = $row['hp'];

                $output .= '<tr><td><a href="http://ccc.aaaa.whatever/' .$eName. '" onclick="document.linkform.submit();">'.$eName.'</a></td><td>'.$eDesc.'</td><td>'.$elvl.'</td><td>'.$ehp.'</td></tr>';
            }
        }            

    return $output;
    }
 }
?>

我正在努力让它被搜索。除非查询仅与名称完全匹配,否则不会显示任何结果。

最佳答案

除非特别指示,LIKE 运算符不会进行部分匹配。也许您想在搜索字符串前添加/附加 % 通配符:

$searchq = '%' . $searchq . '%';

关于php - MySQL之类的查询不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22265478/

相关文章:

sql - 检索信息sql查询

php - 解析错误 : syntax error, 本地主机上的文件意外结束

php - mysql_insert_id() 的行为

javascript - 根据 Woocommerce 3 中的送货方式显示或隐藏结帐字段

php - MySQL多列总计解决方案

php - 如何让 php 自动扫描并添加按日期排序的文件到下载页面

php - 用于查找正文中带有双斜杠的内部 URL 的 MySQL 正则表达式

mysql - 简化多个 SELECT 语句的 SQL 查询,每个语句都带有 UNION 和 LIMIT

php - 高效的多维数组搜索算法在PHP中的实现

javascript - 如果用户不是管理员,注销 jQuery?