我有一个书名数据库。
我根据页面URL中的查询字符串查询数据库。
例如,在有一本名为“Mike's Book”的书的情况下,查询字符串将是“mikes-book”。在将变量传递给MYSQL查询之前,我执行了一些基本的清理工作,将'mikes-book'变成'Mikes Book'。
查询失败,因为查询字符串不包含与DB记录匹配的撇号。
现在,我正在使用此查询:
"SELECT title FROM books WHERE title LIKE '$query_title'"
如果DB记录中没有撇号,则会正确返回记录。但是当DB记录中有撇号时,会返回0结果。
关于我在这里可以做什么的任何想法?
答案 0 :(得分:1)
出现问题的原因是你有一个有损转换,你试图逆转(当你创建你的URL时,它显然被剥离了)。解决此问题的一种简单方法是将转换后的值保留在数据库中,然后查询该值(mikes-book)。更新名称时,还要同时更新转换后的值。
您还可以在SQL中重新实现转换函数,并将每一行与转换后的值进行比较,但我强烈建议您不要这样做。 : - )
答案 1 :(得分:0)
一种解决方案是使用SOUNDEX
,但我认为这是一项昂贵的操作。