我正在尝试在Linux中使用PDO连接到MSSQL Server。有一个包含一些表和视图的数据库模式。
$db = new PDO("dblib:host=$host:$port;dbname=$dbname", $username, $password);
// Working: select from a table
$sql = "SELECT id FROM some_table";
$stmt = $db->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
// NOT Working: select from a view
$sql = "SELECT id FROM some_view";
$stmt = $db->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
我发现函数PDOStatement::fetchAll()
在从View中选择时无法返回结果,但在Table中工作正常。
鉴于我登录到SQL Server的帐户对View和Table都有权限,我还想念什么?
$stmt->execute();
在View的案例中返回FALSE
;在Table的案例中返回TRUE
。