我正在使用PHP在SQLServer 2008中存儲數據。PHP ODBC_FETCH_INTO對於大型nvarchar返回null
數據類型是nVarChar(Max)。
非常大的字符串發佈並保存正確,但是當我odbc_fetch_into時,超過4104個字符的值將在數組中放置一個空值。
我可以選擇left([Note],4104),它會返回左邊的4101個字符,但是當我選擇left([Note],4105)時,它將null放入數組中。
有什麼我需要做我的PHP陣列,使其接受更大的價值? 或者也許單獨獲取字段?
$SQL = "SELECT left([Note],4104) FROM [myTable] WHERE [myKey] = myVariable"; //Works for all strings!
//$SQL = "SELECT [Note] FROM [myTable] WHERE [myKey] = myVariable"; //Works for strings <= 4104 characters
$row = array();
$stuff = array();
$prep = odbc_prepare($conn, $SQL);
$ret = @odbc_execute($prep);
while (odbc_fetch_into($prep,$row)) {
array_push($stuff,$row);
}
echo json_encode($stuff);
更新:我只是做了$東東的var_dump和來找出它有後字符#4104大量的垃圾。在Firefox中,大量鑽石/問號字符以及PHP源代碼的殘留和以前返回的結果。
另一個更新:odbc_fetch_row和odbc_result一起產生相同的錯誤。 – alfadog67