【问题标题】:How can I use a php array in a mysql search query?如何在 mysql 搜索查询中使用 php 数组?
【发布时间】:2010-05-18 05:28:37
【问题描述】:

我打算在http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html 上使用天窗解决方案来处理我网站上的搜索。我想知道如何从用户那里获取搜索输入并将其转换为单个查询。

例如,假设用户在他们的搜索查询中输入了“blue dogs”...如何动态更新查询以在联合和交叉查询中包含 ('blue', 'dogs')?

【问题讨论】:

    标签: php sql search


    【解决方案1】:

    这里发布的方法是正确的,只是增加了一点安全性:不要忘记转义用户输入的数据,否则您离 SQL 注入仅一步之遥。 或者避免查询并使用准备好的语句: PHPManual Prepared Statements

    【讨论】:

      【解决方案2】:

      你可以这样做:

      $search_string = implode(',', $search_array);
      

      现在您可以在查询中使用IN 子句:

      $query = "select * from table where field IN ('".$search_string."')";
      

      【讨论】:

      • -1:字符串参数应该被引用,所有值应该通过mysql_real_escape_string过滤
      【解决方案3】:

      例如您的用户输入是“蓝狗”,然后在页面上

      $searchstring = "blue dogs"; // or fetch the input
      $arr = explode(" ",$searchstring); //this is explode the text by every "space" character
      

      您现在已经在数组 $arr 中输入了用户输入的字符串,现在像往常一样在查询中使用它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-12
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 2017-12-11
        • 1970-01-01
        • 2016-04-16
        • 1970-01-01
        相关资源
        最近更新 更多