プリペアドステートメントのエミュレーションモードとは何ですか?

プレースホルダーの動作について説明していきます。
2023年7月14日
ユーザー

大変、お世話になります。

プリペアドステートメントのエミュレーションモード、PDO::ATTR_EMULATE_PREPARES => false, について、質問をさせて下さい。

ATTR_EMULATE_PREPARES がどういうものなのかが、明確に分からなかったので、ネットで調べてみたのですが、PDO::ATTR_EMULATE_PREPARESfalse にすると、副作用的に int 型 を返すとの記事をみました。

「副作用的に」とあったので、本来的な意味は何かと思い、調べを続けていくと、総体的に「PHP のエミュレート機能の脆弱性」に対しての PDO::ATTR_EMULATE_PREPARESfalse にすると有効との事で、PDO を使う時は、この設定は必須であるとの理解に達しております。

とは言え、しっかりと理解はできておらず、教えて頂きたいのは、色々な記事に書かれていたのですが、「エミュレート機能を有効にする、無効にする」の「エミュレート機能」や「エミュレートする」とはどういう事なのか、「エミュレートする、しない」の対象は「プレースホルダー」に対してなのか?等、これらを理解したく、意味を教えて頂きたく思います。

また、静的プレースホルダーや動的プレースホルダーの意味も、合わせて教えて頂ければ嬉しいです。

よろしくお願い致します。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?