2011-10-27 7 views

答えて

1

エスケープ変数の概念は、エスケープされるデータベース接続のコンテキストでのみ意味があるため、接続が必要です。異なる文字は、MySQLとPostgreSQLによって、あるいは接続の文字セットによって異なって解釈されるかもしれません。だから、真空中で変数をエスケープすることについて話すのは理にかなっていません。結果の文字列をどのように解釈するかという考えが必要です。

多分memcachedのキーとして何かを使うことができます。

+0

私は真空でエスケープすることについて話すのは理にかなっていませんが、引用するだけでDBに接続することは過度のように思えます。私はdbパラメータが必要だと理解していますが、それらはPDOコンストラクタにあります。私はpostgresqlを使用しています...私は接続がまだ作成されていないときにカスタム見積もりを使用すると思います –

1

PDOは抽象レイヤーであり、各データベースの引用方法が異なるためです。 PDOは、適切な引用/エスケープAPI呼び出しを使用するために使用するデータベースを知っていなければなりません。

0

SQLが使用されるドライバがわかっている場合は、独自の関数を書いてください。

/** 
* @param {string|int|null} $data 
* @return string 
*/ 
function quote ($data) { 
    if (is_float($data) || is_int($data)) { 
     return $data; 
    } else if (is_string($data)) { 
     return '\'' . addslashes($data) . '\''; 
    } else if ($data) { 
     throw new Exception('Invalid data type.'); 
    } else { 
     return 'NULL'; 
    } 
} 

使用例:別のプログラムによって後で実行されるSQLコードを生成するために使用されるCLIプログラムがあります。このシナリオでは、MySQL接続の確立は冗長であり、望ましくない可能性があります。

関連する問題