我正在尝试从MS SQL 2008服务器查询数据。我正在查询 SQL View 中的数据。不是SQL表。
有人知道 SQLSRV 是否能够从SQL Server查询View?
以下示例代码。当我使用表时使用,但在使用 SQL视图时则无效。
我正在使用PHP版本7和MS SQL 2008 R2。
连接
$serverName = "LOC-SVR\SQLEXPRESS"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName","UID" => "svc_test","PWD" => "test");
$connect = sqlsrv_connect( $serverName, $connectionInfo);
查询代码
$sql = "SELECT Col1
, Col2
, Col3
FROM V_TEST_VIEW;";
sqlsrv_configure('WarningsReturnAsErrors', 0);
sqlsrv_query($connect,$sql);
$res = sqlsrv_query($connect, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
while ($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC))
{
echo $row['Col1'];
echo $row['Col2'];
echo $row['Col3'];
}
结果
没有错误。视图中只返回1行。在Microsoft SQL Server Management Studio中,返回几百行。
感谢任何帮助。
答案 0 :(得分:0)
找到解决方案。 http://php.net/manual/en/function.sqlsrv-fetch-object.php
我可以使用此查询我的View。
<强> CODE 强>
$sql = "SELECT Col1, Col2, Col3 FROM V_TEST_VIEW";
$stmt = sqlsrv_query( $connect, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
// Retrieve each row as an object.
// Because no class is specified, each row will be retrieved as a stdClass object.
// Property names correspond to field names.
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo "<strong>".$obj->Col1."</strong>, ".$obj->Col2 ."<br />";
}