私は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つの変数には何が含まれますか?