1

继我的上一个问题之后:

我现在使用的语句:

    if (isset($_GET['url'])) {
        $url = $_GET['url'];
    }


      SELECT name, url FROM table WHERE species LIKE '%$url%'

species可能有内容喜欢"Brown & Rainbow Trout, Pike"

但是我说褐鳟的网址是:/fishing/browntrout/

这基本上可以防止上面的语句返回任何结果。

显然它适用于 say :/fishing/pike/只是不适用于有 2 个名字的鱼。

解决此问题的最佳方法是什么?

4

1 回答 1

1

尝试制作网址/fishing/brown_trout/。然后尝试这样的事情:

if (isset($_GET['url'])) { // "brown_trout"
    $url = str_replace('_', '%', $_GET['url']); // "brown%trout"
}

SELECT name, url FROM table WHERE species LIKE '%$url%'

这将使查询:

SELECT name, url FROM table WHERE species LIKE '%brown%trout%'

哪个应该工作。

于 2012-05-01T22:19:43.527 回答