PHPでPDOクラスを使用してPostgreSQLクエリを実行しています。PHP Postgres PDOの一重引用符
$conn = new PDO("pgsql:host=$dbhost;port=$dbport;dbname=$dbname;user=$dbuser;password=$dbpass");
$query = 'SELECT "ID", "Description" FROM "MyTable"';
$result = $conn->query($query);
クエリで何かがこれはそれがあるように動作しません
$query = 'SELECT "ID", "Description" FROM "MyTable" WHERE "Description" = 'A107'';
のような単一引用符で囲む必要があると仮定します。しかし、私が次のことをすれば、うまくいくでしょう。
$query = 'SELECT "ID", "Description" FROM "MyTable" WHERE "Description" = ' . $conn->quote('A107', PDO::PARAM_STR);
私はPDOの準備と実行でこれを行うより良い方法があることを知っています。このコードは本質的に私の同僚(プログラミング経験が限られている)がPostgreSQLのクエリを貼り付けることを望むテンプレートの一部です。
このように、私はこの場合、一重引用符を扱う最も簡単な方法を探しています。クエリは、私が与えた例よりも複雑かもしれませんし、テンプレートをあまりにも使いすぎないようにしたくありません。エスケープのラインに沿った何かがいいだろうが、これは動作するようなものは見つかりませんでした。彼らの一部の修正が必要になるだろうが、これを最小限に抑えたいと思う。
一重引用符をエスケープすることができます。 '\'を使用してください。 –