ホームページ >バックエンド開発 >PHPチュートリアル >`IN()` 句で MySQLi プリペアド ステートメントを含む配列を使用する方法

`IN()` 句で MySQLi プリペアド ステートメントを含む配列を使用する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 06:13:14996ブラウズ

How to Use an Array with MySQLi Prepared Statements in an `IN()` Clause?

'IN()' クエリの MySQLi Prepared Statement に配列を組み込む方法

フィルタリングを伴う MySQL クエリを実行する場合WHERE ... IN(...) 構文を使用して配列内の値に基づいてレコードを作成するには、使用することをお勧めします準備されたステートメントを使用して、セキュリティとパフォーマンスを強化します。ただし、質問に示されているようにプリペアド ステートメントを使用するには、結果を手動で並べ替える必要があります。

これに対処するには、より良い解決策は、プリペアド ステートメント内で MySQL の組み込み IN() 機能を利用することです。これにより、ID の配列をクエリに直接組み込むことができます。

$ids = array(1,5,18,25);

// Construct a comma-separated string of placeholders
$clause = implode(',', array_fill(0, count($ids), '?'));

// Prepare the statement with the IN() clause
$stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id` IN (' . $clause . ') ORDER BY `name`;');

// Bind the array of IDs to the placeholders
call_user_func_array(array($stmt, 'bind_param'), $ids);
$stmt->execute();

// Iterate over the results

このアプローチを使用すると、bind_param 関数が ID の配列全体で 1 回呼び出され、MySQL が自動的にフィルタリングと順序付けを処理します。結果。これにより、手動による並べ替えと比較して、より効率的で堅牢なソリューションが提供されます。

以上が`IN()` 句で MySQLi プリペアド ステートメントを含む配列を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。