【问题标题】:PHP string variable in MySQL Like query [duplicate]MySQL Like查询中的PHP字符串变量[重复]
【发布时间】:2015-11-07 04:59:09
【问题描述】:

所以我尝试接收一个 PHP 变量并将其插入到一个简单的 sql 查询中,但它不起作用,我似乎无法找出问题所在。

注意:我知道此代码存在安全问题

staff_model.php 文件:

function getSearches($searchterm) {
        $sql = "SELECT * 
                FROM people 
                WHERE name 
                LIKE '%{$searchterm}%'";
        $query = $this->db->query($sql);
        return $query;
    }

我的表有几列,但它有 id、name、subject、type 等列。我得到 $searchterm 的方式类似于

var searchText = document.getElementById('custom-search-text').value; 

在我的 javascript 文件中,我会将其传递给 users.php

$.get(url+"/api/users/staff", {id: id, name: name, type: type, subject: subject, search: searchText})

为了确保其他一切正常,我为 searchTerm 硬编码了一些东西(比如$sql = "SELECT * FROM people WHERE name LIKE 'Matt'"),我确实得到了正确的结果。

我尝试过的其他方法是 $sql = "SELECT * FROM people WHERE name LIKE $searchTerm",但没有成功。

关于如何让它与通配符一起工作的任何想法?

【问题讨论】:

  • 试试这个:- $sql = "SELECT * FROM people WHERE name LIKE '$searchTerm' "
  • @AnkurTiwari 结果返回为空
  • 仅使用“SELECT * FROM people LIMIT 10”会产生什么结果?

标签: php mysql sql string


【解决方案1】:

"SELECT * FROM people WHERE name LIKE '%".$searchterm."%'";

【讨论】:

    【解决方案2】:

    试试这个 $sql = "选择 * 从人 地点名称 LIKE '%".$searchterm."%'";

    使用 .作为连接运算符

    【讨论】:

    • 我尝试了这个查询,但它仍然一无所获。有没有可能是其他地方出了问题?
    • 我可以看到计数。这是我的代码 你能分享你的整个代码吗?
    • 没关系,我在其他地方遇到了另一个愚蠢的问题,但是直到我更多地弄乱代码后我才看到错误
    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 2020-02-12
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 2013-07-08
    • 2011-06-09
    相关资源
    最近更新 更多