ホームページ >バックエンド開発 >PHPチュートリアル >`IN()` 句で MySQLi プリペアド ステートメントを含む配列を使用する方法
'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 サイトの他の関連記事を参照してください。