文字列の可変長配列を操作する場合、それらをパラメータとして MySQL ストアド ルーチンに渡すと問題が発生する可能性があります。これを克服するための代替ソリューションは、配列値を 1 つの文字列に連結し、プリペアド ステートメントを利用することです。
次のコード スニペットは、プロセスの概要を示しています。
DELIMITER $$ CREATE PROCEDURE GetFruits(IN fruitArray VARCHAR(255)) BEGIN SET @sql = CONCAT('SELECT * FROM Fruits WHERE Name IN (', fruitArray, ')'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END $$ DELIMITER ;
このストアド プロシージャを使用するには、カンマで区切られた配列値で文字列変数を初期化し、その変数を引数として渡してプロシージャを呼び出すことができます:
SET @fruitArray = '\'apple\',\'banana\''; CALL GetFruits(@fruitArray);
Thisこのソリューションを使用すると、文字列値の配列を MySQL ストアド ルーチンに渡し、メモリ内テーブル内のデータを操作できるようになります。
以上が文字列配列を MySQL ストアド プロシージャに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。