2012-04-02 52 views
3

您好我目前正在開發一個PHP腳本,將簡單地返回一個字段的值。下面的代碼是什麼使用PHP SQL Server 2008不返回預期的結果

$code = $_POST['code']; 

$serverName = "EDIT"; 
$connectionInfo = array("UID" => "EDIT", "PWD" => "EDIT", "Database"=>"EDIT"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

$tsql2 = "SELECT paitentno FROM paraappreg WHERE appno = $code"; 

$result2 = sqlsrv_query($conn, $tsql2, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET)); 

    print sqlsrv_fetch($result2); 

這段代碼是生成一個輸出,但它總是「1」。 Im gussing這與我如何使用sqlsrv_fetch返回值有關,但如果這是問題,我不確定我應該使用什麼。

感謝安寧:)

回答

1

sqlsrv_fetch任何幫助「使得其下一行的結果集可供閱讀。」你所得到的迴應是「真實的」,這意味着操作已經成功。你想要做的就是使用此命令的變種之一來獲取數據(代碼沒有測試,但應該工作):

print ($result2); // response: 1 ("true") 

    print_r(sqlsrv_fetch_array($result2)); // response: Array("paitentno"=>'1234'); 
    print_r(sqlsrv_fetch_object($result2)); // response: StdObj->paitentno->1234; 
    // this gets the item by index: 
    print_r(sqlsrv_get_field($result2, 0)); // response: 1234; 

瞭解更多關於sqlsrv_fetch at php.net.

+0

這個答案基本上是正確的,有一個更正:sqlsrv_get_field函數旨在與sqlsrv_fetch結合使用。即調用sqlsrv_fetch使行準備好讀取,然後調用sqlsrv_get_field以獲取行中的字段(一次一個)。 sqlsrv_fetch_array和sqlsrv_fech_object將獲取整行,並且不能在sqlsrv_fetch後調用。 – 2012-04-05 23:37:43