1

使用時

$optionquery = "SELECT OptionId FROM Option_Table WHERE (OptionType = ?)";

// Bind parameter for statement
$optionstmt->bind_param("s", $selected_option);

これは問題ありませんが、WHERE 句を使用してフォルダー内の変数を検索したい場合、どのように記述すればよいでしょうか? 下はこんな感じかな?

$optionquery = "SELECT OptionId FROM Option_Table WHERE (OptionType = 'VideoFiles/?')";

// Bind parameter for statement
$optionstmt->bind_param("s", $selected_option);

またはこのように:

$optionquery = "SELECT OptionId FROM Option_Table WHERE (OptionType = ?)";

// Bind parameter for statement
$optionstmt->bind_param("s", 'VideoFiles/$selected_option');

一重引用符は、フォルダー名と変数名の両方を囲んでいますか、それともフォルダー名だけを囲んでいますか?

4

1 に答える 1

3

後者を使用する必要があります

$optionquery = "SELECT OptionId FROM Option_Table WHERE (OptionType = ?)";

文字列を引用する方法はいくつかありますが、次のいずれかで問題ありません。

$optionstmt->bind_param("s", 'VideoFiles/' . $selected_option);
// or
$optionstmt->bind_param("s", "VideoFiles/$selected_option");

ただし、変数を単一引用符で囲むと機能し'ません。変数は実際の値に変換されません$selected_option。単一引用符を使用すると、クエリでリテラル文字列が取得されます。

于 2012-06-18T17:17:44.637 に答える