【问题标题】:LIKE query can't function properlyLIKE 查询无法正常运行
【发布时间】:2013-01-16 09:35:43
【问题描述】:

感谢观看。

我正在尝试为我的网站创建一个自定义搜索插件,以从我的数据库行中获取用户在搜索框中输入的任何查询的值。我正在为我的搜索插件运行 ajax。

它最初似乎起作用,但我意识到并非所有输入的值都会发生这种情况。

以下是我的脚本:

.POST 脚本

    $search=$_POST['search'];
    if($type=='search'){
        $query_str=$search;
        $query1="SELECT * FROM ads1_adsmanager_ads WHERE ad_headline LIKE '%$query_str%' OR ad_text LIKE '%$query_str%' ORDER BY id DESC LIMIT $count";
    }else if($type='normal'){
        .
        ..
        .. ..

我能够获得更通用的值,例如“demo”、.. 等等

但我无法获得“一般”、“工作”等值。

查看了大量示例并尝试了变量 $query_str 周围的所有括号,但我不确定我的查询是否存在影响结果的任何语法问题。

一定会在这里得到一些帮助。

【问题讨论】:

  • 所有这些“演示”和“工作”都等同于数据库。要提出这样的问题,必须同时提供示例数据和失败的查询。暂时没有什么可以回答的
  • 另外,查看 SQL 注入漏洞。如果您打算在任何地方发布页面。这是一种非常常见且容易被利用的黑客攻击。
  • 演示和作业是用户输入的查询。我用我的数据库中的广告标题和广告描述检查了它们。只有演示返回结果。也不是全部。
  • 嗨。谢谢。解决了。问题不在查询中。它发生在我的 ajax 请求上

标签: php javascript database phpmyadmin .post


【解决方案1】:

最简单的方法是检查查询,只需检查echo $query1,您就会看到错误,就像在 cmets 中的一个家伙说尝试将它放在 phpmyadmin 中的查询控制台中一样,它也会显示你的错误,如果它们存在的话

【讨论】:

    【解决方案2】:

    查询将是

    $query1="SELECT * FROM ads1_adsmanager_ads WHERE ad_headline LIKE '%".$query_str."%' OR ad_text LIKE '%".$query_str."%' 
    

    【讨论】:

    • SELECT * FROM ads1_adsmanager_ads WHERE ad_headline LIKE '%demo%' OR ad_text LIKE '%demo%' ORDER BY id DESC LIMIT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    相关资源
    最近更新 更多