2010-12-17 18 views
3

以前は、SQL ServerデータベースおよびMySQLデータベースに接続するためにPDOを使用するデータベースクラスを作成しました。 MySQLデータベースでは疑問符は常に問題なく置き換えられましたが、SQL Serverデータベースでは疑問符を手動で置き換える作業を作成しなければなりませんでした。ここにそのコードがあります。PHP PDO SQL Server Select文が疑問符を置き換えない

if($this->getPDODriver() == 'odbc' && !empty($values_a) && substr_count($query_s, "?") > 0) { 
    $query_s = preg_replace(array_fill(0, substr_count($query_s, "?"), '/\?/'), $values_a, $query_s, 1); 
    $values_a = NULL; 
} 

は今、私はこれは完全に疑問符とPDOの目的に反していることを理解し、それは私のために正常に動作しています。しかし私が今したいことは、なぜ疑問符が最初に置き換えられないのかを知り、この回避策を取り除くことです。

私はそれを準備するために行くとき、クエリがどのように見えるかですが、私は、クエリ結果を表示したときに、それは空白の配列で、次の

SELECT * FROM database WHERE value = ? 

のようなselect文を持っている場合。

このクラスはMySQLでうまく動作していることを覚えておいてください。これは上の作業でうまくいきます。だから私はそれが疑問符と関係があることを知っている。

答えて

0

この情報は十分ではありません。SQL Server Profilerを参照し、pdoによって送信された実際のクエリを期待どおりに比較してください。

関連する問題