1

私は本のタイトルのデータベースを持っています。

ページのURLのクエリ文字列に基づいてデータベースにクエリを実行します。

したがって、たとえば、「Mike's Book」という本がある場合、クエリ文字列は「mikes-book」になります。変数をMYSQLクエリに渡す前に、いくつかの基本的なクリーンアップを実行して、「mikes-book」を「MikesBook」に変換します。

クエリ文字列にDBレコードと一致するアポストロフィが含まれていないため、クエリは失敗します。

現在、私はこのクエリを使用しています:

"SELECT title FROM books WHERE title LIKE '$query_title'"

DBレコードにアポストロフィが存在しない場合、レコードは正しく返されます。ただし、DBレコードにアポストロフィがある場合、0の結果が返されます。

ここで何ができるかについて何かアイデアはありますか?

4

2 に答える 2

1

この問題は、逆変換しようとしている損失の多い変換があるために発生します(URLを作成すると、'は明らかに削除されます)。これを解決する簡単な方法は、変換された値をデータベースにも保持してから、その値をクエリすることです(mikes-book)。名前を更新するときは、変換された値も同時に更新します。

SQLで変換関数を再実装し、各行を変換された値と比較することもできますが、そうしないことを強くお勧めします。:-)

于 2013-01-06T16:10:28.523 に答える
0

1つの解決策は使用することSOUNDEXですが、これはコストのかかる操作だと思います。

于 2013-01-06T16:17:09.183 に答える