我正在使用item_name列用连字符重写URL。例如,使用animals of the planet-v9到http://example.com/book/animals-of-the-planet-v9和str_replace(' ','-',$item_name)。我即将回到MySQL的方式是:

$item_name = str_replace('-', ' ', $_GET['item_name']);
SELECT * FROM table where item_name LIKE '% $item_name %'“地球上的动物”(-v9)变成“地球上的动物”( v9 )。
网址:example.com/动物-地球-v9
上面的查询匹配0结果,我注意到任何包含连字符的列都不匹配,因为有时它需要一个原始连字符,而不是字符串中重写的连字符。我还在查询中尝试了with =和LIKE。如何确定在哪里可以有一个非常简单的URL,其中包含连字符,而不需要任何数字ids?
发布于 2018-02-03 08:27:00
尝尝这个,
$item_name = $_GET['item_name'];
SELECT * FROM table where REPLACE(item_name, ' ', '-') = '$item_name'注意-在使用前逃离$item_name。以防止查询从mysql注入。
https://stackoverflow.com/questions/48595384
复制相似问题