MySQLi プリペアド ステートメントで IN 演算子を使用する
MySQLi プリペアド ステートメントで IN 演算子と IN 演算子を使用する場合、適切にフォーマットすることが重要ですパラメータ。提供された最初のコード:
$data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN (?)'); $data_res->bind_param('s', $in_statement);
$in_statement が値の配列ではなく文字列であるため、エラーが発生します。この問題を解決するために、call_user_func_array 関数を使用する別のアプローチが提示されています。
$int = str_repeat('i', $count_params); array_unshift($arParams, $int); $q = array_fill(0, $count_params, '?'); $params = implode(',', $q); $data_res = $_DB->prepare('SELECT `id`, `name`, `age` FROM `users` WHERE `lastname` IN ('.$params.')'); call_user_func_array(array($data_res, 'bind_param'), $arParams);
この変更されたコードでは、
以上がMySQLi プリペアド ステートメントと複数のパラメータで IN 演算子を正しく使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。