0

私のウェブサイトでキーワード検索を作成しようとしています。

検索バーがあり、怒りなどのキーワードを入力します。私の URL はwww.website.com/?s=angryになります

VARCHAR フィールドのキーワードに対して mysql 検索クエリを実行するにはどうすればよいですか?

ありがとう

4

4 に答える 4

3

LIKEまたは全文検索を使用できます*

  • フルテキストインデックスは、MyISAM(MySQL 5.5以前)でのみ使用できます。
  • フルテキストインデックスは、MyISAMとInnoDB(MySQL 5.6)でのみ使用できます。
于 2012-11-19T15:26:44.820 に答える
1

PHP

$search = $_GET['s'];   //clean this up to avoid sql injection

MySQL

SELECT * FROM MyTable
WHERE field1 LIKE '%search%' OR
      field2 LIKE '%search%' OR
      ...
      fieldn LIKE '%search%'

どこsearchをユーザーが入力したものに置き換える必要があります

于 2012-11-19T15:28:51.270 に答える
0

LIKESQLステートメントで使用できます。

$search = $mysqli->real_escape_string($_GET['s']);
$query = "select column from table where varchar_column like '%$search%'";

これにより、VARCHAR列で検索文字列のすべての出現箇所が検索されます。

編集:SQLインジェクションを防ぐのに役立つコードを追加しました。明らかに、本番環境にクエリを適用するときは、クエリをインジェクションから常に保護する必要があります。

于 2012-11-19T15:27:06.040 に答える
0

まず、URL から検索文字列を取得する必要があります。これは、$_GET グローバルを使用して php で実行できます。キーは、URL の「s=」部分を表します。

$search = $_GET['s'];

次に、フィールドを検索するために MYSQL クエリを作成する必要があります

SELECT * (or whatever column you need) FROM (table) WHERE (column) LIKE '%($search)%'

$search 変数が自動的にエスケープされるように、PDO 準備済みステートメントを使用してクエリを実行することをお勧めします。

http://php.net/manual/en/book.pdo.php

于 2012-11-19T15:28:38.827 に答える