PHP PDO SQL Server Select语句不替换问号

时间:2010-12-17 21:58:42

标签: php mysql sql-server pdo

前一段时间我写了一个数据库类,它使用PDO连接到SQL Server数据库和MySQL数据库。在MySQL数据库上使用它时,它总是更换问号,但对于SQL Server数据库,我必须创建一个基本上可以手动替换问号的工作。这是代码。

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 = ?

当我准备它时,这就是查询的样子,但是当我显示查询结果时,它是一个空白数组。

请记住,这个类在MySQL上运行良好,它在上面的工作中运行良好。所以我知道它与问号有关。

1 个答案:

答案 0 :(得分:0)

信息不够在SQL Server Profiler中查看并将pdo发出的真实查询与预期进行比较。