【发布时间】:2016-05-21 13:57:03
【问题描述】:
我在 Windows 上使用 PHP 5.6.16,以前使用 MySQL 进行 PDO 的所有查询。我在这里所做的唯一更改是使用 Microsoft SQL Server 2008 而不是 MySQL 作为数据库。因此,我现在已经安装了正确的 SQLSRV 驱动程序,phpinfo() 看到它并且很高兴,并且生活继续进行,没有数据库连接错误。
在尝试使用读取查询加载一些页面后,我看到没有数据通过。我发现在我的$queryResult = $query->execute(); 命令之后,这个$queryResult 变量返回FALSE。
所以我更上一层楼,发现我在$query 中的实际查询仍然有我准备好的变量,而不是绑定的数据。这是我绑定变量并执行的地方:
$query->bindParam(':startDate', $startDate);
$query->bindParam(':endDate', $endDate);
$queryResult = $query->execute();
下面是$query 的 VarDump,在这些之后:
object(PDOStatement)#16 (1) { ["queryString"]=> string(86) "SELECT * WHERE UNIX_TIMESTAMP(DATE) >= :startDate AND UNIX_TIMESTAMP(DATE) <= :endDate"}
我的理解是,在这里,我应该看到真实数据,完整的查询,而不是准备好的变量。 MS SQL SRV 是否有我在设置或初始化期间未能执行的操作?到目前为止,我还没有在网络上发现任何类似的问题。
谢谢。
【问题讨论】:
-
SQL Server 中没有
UNIX_TIMESTAMP()函数。见stackoverflow.com/questions/8837225/… -
@Barmar 当然!非常感谢。
标签: php mysql sql-server pdo sqlsrv