ほとんどすべての特定のデータベース機能を抽象化するコマンド クラスがあります (Mssql 2005 (ODBC とネイティブの mssql ライブラリを使用)、MySQL、および Oracle でまったく同じアプリケーションを実行しています。実行され、すべてのプレースホルダーをそれぞれの値に置き換えます.しかし、問題は、私が次のものを使用していることです:
if(is_array($Parameter['Value']))
{
$Statement = str_ireplace(':'.$Name, implode(', ', $this->Adapter->QuoteValue($Parameter['Value'])), $Statement);
}
else
{
$Statement = str_ireplace(':'.$Name, $this->Adapter->QuoteValue($Parameter['Value']), $Statement);
}
この問題は、session_browser と session_browse_version のように、2 つ以上の類似したパラメーター名がある場合に発生します。最初のものは最後のものを部分的に置き換えます。
もちろん、特定の順序でパラメーターを指定して回ることを学びましたが、「自由な」時間ができたので、より良くしたいので、preg_replaceに切り替えようと考えています...そして、私は正規表現が苦手です... 、':parameter_name` のような文字列を置き換える正規表現を誰か助けてもらえますか?
よろしく、 ブルーノ・BB・マガリャエス