14

我从 MySQL 迁移到 MS SQL Server,并尝试从例程表中获取所有数据。我已连接但不确定如何使用 sqlsrv 获取数据。这是我走了多远:

$conn_array = array (
    "UID" => "sa",
    "PWD" => "root",
    "Database" => "nih_bw",
);
$conn = sqlsrv_connect('BILAL', $conn_array);
if ($conn){
    echo "connected";
    $result = sqlsrv_query($db->db_conn,"SELECT * FROM routines");
}else{
    die(print_r(sqlsrv_errors(), true));
}
sqlsrv_close($conn);
?>
4

4 回答 4

15

首先,如果我没有错,您将 sqlsrv_connect结果存储到$conn 其中,并且该结果不是类 obj 它是资源,因此请删除$db->conn

这个例子,将连接,如果有资源返回则获取sqlsrv_query

$conn_array = array (
    "UID" => "sa",
    "PWD" => "root",
    "Database" => "nih_bw",
);
$conn = sqlsrv_connect('BILAL', $conn_array);
if ($conn){
    echo "connected";
    if(($result = sqlsrv_query($conn,"SELECT * FROM routines")) !== false){
        while( $obj = sqlsrv_fetch_object( $result )) {
              echo $obj->colName.'<br />';
        }
    }
}else{
    die(print_r(sqlsrv_errors(), true));
}
于 2014-07-02T17:16:07.343 回答
2

成功执行查询后,sqlsrv_query您可以获取结果,例如,使用sqlsrv_fetch_array

$result = sqlsrv_query($db->db_conn, "SELECT * FROM routines");
if($result === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC) ) {
    echo $row['column1'].", ".$row['column2']."<br />";
}
于 2014-04-17T11:13:41.150 回答
0

尝试这个:

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC) ) {
  var_dump($row);
}

sqlsrv_free_stmt($result);
于 2014-04-17T11:14:23.327 回答
0
$conn_array = array (
    "UID" => "sa",
    "PWD" => "root",
    "Database" => "nih_bw",
);
$conn = sqlsrv_connect('BILAL', $conn_array);
if ($conn){
    echo "connected";
    if(($result = sqlsrv_query($conn,"SELECT * FROM routines")) !== false){
        while( $obj = sqlsrv_fetch_object( $result )) {
              echo $obj->colName.'<br />';
        }
    }
}else{
    die(print_r(sqlsrv_errors(), true));
}

这对我很有用,但是请任何人都可以帮我在桌子上显示结果吗?

我的意思是这部分:

while( $obj = sqlsrv_fetch_object( $result )) {
              echo $obj->colName.'<br />';
        }
于 2021-02-12T19:43:42.750 回答