0

私はWebプロジェクトにmysqliでphpを使用しています。

「彼女は風のようだ」というタイトルの曲を見つける必要があると仮定します。
ユーザーが曲の単語を入力してそれを実行できると確信している場合(擬似コード):

get input and apply explode()
concat each word with % between them
and execute query

「shethewind」を入力すると、「%she%the%wind%」に変換され、曲が見つかります。
ただし、入力が「windlike」->「%wind%like%」の場合、曲は見つかりません。

like %?% and単語の配列の長さと同じ数を追加して$query文字列を作成することを考えました。これで、$query文字列の準備が整いました。

この問題は、バインドパラメータの$vars引数で発生します。
この場合も、$types文字列は次のように連結できます。

$types .= "s"; //again, the number of times as the length of the array.

しかし、単語を表す変数はどうですか?2つの単語がある場合、関数呼び出しは次のようになります。

bind("ss", $word1, $word2)

使用する$word変数はいくつですか?

例5では、検索する単語の最大数を設定できますが、ここで別の問題が発生します。使用されない変数の内容はどうなりますか?たとえば、入力が2ワードの場合、最後の3つの変数には何が含まれますか?

4

1 に答える 1

1

可変数のバインド パラメータについては、一度に 1 つずつループでバインドできます。

ただし、現在のケースでは、実際にはバインドする変数が 1 つしかありません。したがって、検索文字列を変数にしてからクエリにバインドするだけです。

于 2013-01-02T20:03:39.903 に答える