簡體   English   中英

資源ID nvarchar(MAX)

[英]Resource ID nvarchar(MAX)

我似乎無法對此直接回答。

我正在獲取SQLSRV數據庫中nvarchar(MAX)類型的字段的內容,但是當我回顯從查詢返回的字段的結果而不是內容時,我不斷得到“資源ID#1”。 我對SQLSRV和PHP相當陌生,但是據我所知,此值是指向我實際需要的其他內容的指針嗎?

如果是這樣,我如何獲得這些數據。

我努力了:

$sql = "SELECT * FROM table";
    $stmt= sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_STATIC));

$getNext = sqlsrv_fetch($stmt);
$result = sqlsrv_get_field($stmt, 1); // this is the nvarchar(max) field

echo $result; // this shows Resource id #1;

// I tried
//$resource = sqlsrv_fetch($result); // this creates errors

謝謝。

NVARCHAR(MAX)將為您處理存儲問題,將小於4000個字符的任何內容存儲在表中,將大於4000個字符的任何內容存儲在表中帶有指針的單獨位置中。 好消息是,SQL Server會將返回的數據呈現給您,就像存儲在表中一樣,因此使用NVARCHAR(MAX)不應成為問題的原因,它就像普通的表字段一樣工作。

剛發現這個,可能會有所幫助...

/*Get the second field of the row as a stream.
Because the default return type for a nvarchar field is a
string, the return type must be specified as a stream. */
$stream = sqlsrv_get_field( $stmt, 1, 
                            SQLSRV_PHPTYPE_STREAM( SQLSRV_ENC_CHAR));
while( !feof( $stream))
{ 
    $str = fread( $stream, 10000);
    echo $str;
}

http://msdn.microsoft.com/en-us/library/cc296207(v=sql.105).aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM