私は DB の専門家ではありませんが、かなり大規模な MySQL DB の実稼働の責任の一部を、やや無能であるが時折才能を発揮しているように見える人物から受け継いでいます。ほとんどの問題は自分で解決できましたが、これは私を困惑させ、どこにも対処していません。
準備されたステートメントのラッパーにすぎないストアド プロシージャを使用する正当な理由はありますか?
これらの行に沿ったもの:
CREATE PROCEDURE foo_search (IN searchParam1 int, IN searchParam2 varchar(255))
BEGIN
SET @local1 = searchParam1;
SET @local2 = searchParam2;
PREPARE stmt FROM
'...'; --Fairly complex nested select statement
EXECUTE stmt USING @local1, @local2;
END
以上です。プリペアド ステートメントについての私の理解では、その利点は、入力のサニタイズ (使用する PHP フレームワークによって既に処理されています) と、やり取りのやり取りの削減 (ストアド プロシージャ内にあることで妥協) にあるということです。
この純粋で単純な意味のない狂気なのか、それとも何かが足りないのでしょうか?