【发布时间】:2014-10-20 08:08:57
【问题描述】:
我在本地计算机上使用 PDO 连接到 MS SQL 服务器以使用准备语句。驱动安装正确,可以连接数据库。代码如下:
try {
$con = new PDO("sqlsrv:Server={$host};Database={$db_name}", $username, $password);
}
catch(PDOException $exception){
echo "Connection error: " . $exception->getMessage();
}
$query = "SELECT TOP 10 ClientID FROM CLIENT";
$stmt = $con->prepare($query);
$stmt->execute();
$num = $stmt->rowCount();
print $num;
从 SSMS 查询按应有的方式返回,但代码中没有任何内容,因为它打印 -1 作为 $num 的结果。如果我将查询更改为SELECT @@VERSION,它会正确打印版本但不是我的查询。我的查询来自 SSMS,PDO 可以连接到服务器,但无法弄清楚问题出在哪里,这太令人沮丧了,请帮忙。
【问题讨论】:
-
来自文档:PDOStatement::rowCount() 返回受相应 PDOStatement 对象执行的最后一个 DELETE、INSERT 或 UPDATE 语句影响的行数。如果关联的 PDOStatement 执行的最后一条 SQL 语句是 SELECT 语句,则某些数据库可能会返回该语句返回的行数。然而,这种行为并不能保证适用于所有数据库,不应依赖于 [...]
-
@GeraldSchneider 我明白了。感谢您的链接。
标签: php sql-server pdo