-3
PHP從存儲過程「sp_test」中返回的JSON字符串值中僅讀取2034個字符。爲什麼只有2034個字符而不是更多?php ms sql server存儲過程返回json字符串max 2034
使用PHP版本31年6月5日與SQL Express的2017年
$query = "EXEC sp_test";
$stmt = sqlsrv_prepare($GLOBALS['connIntern'], $query);
if (!sqlsrv_execute($stmt)) {
if (($errors = sqlsrv_errors()) != null) {
foreach ($errors as $error) {
echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
echo "code: " . $error['code'] . "<br />";
echo "message: " . $error['message'] . "<br />";
}
}
die;
}
$array = [];
if (!empty($result)) {
while ($row = sqlsrv_fetch_array($result)) {
array_push($array, $row[0]);
}
}
return $array;
存儲過程 「sp_test對它」:
SELECT [Tracking].[orderNumber],[Tracking].[tcpState], [Stations].[startdate],[Stations].[enddate],[Stations].[tcpState],[Stations].[name]
FROM [Tracking]
LEFT JOIN [Stations] ON [Tracking].[orderNumber] = [Stations][orderNumber]
FOR JSON AUTO
格式的結果:
[
{
"orderNumber": 123455,
"tcpState": 3,
"Stations": [
{
"startdate": "2011-05-06",
"enddate": "2012-09-15",
"tcpState": 3,
"name": "Roger"
},
{
"startdate": "2011-02-06",
"enddate": "2012-05-15",
"tcpState": 4,
"name": "Hans"
}
]
},
{
"orderNumber": 1566,
"tcpState": 3,
"Stations": [
{
"startdate": "2011-06-06",
"enddate": "2012-08-15",
"tcpState": "6",
"name": "Mike"
},
{
"startdate": "2011-03-06",
"enddate": "2012-03-15",
"tcpState": "6",
"name": "Tom"
}
]
}
]
你有一個很好的問題,這裏的開端,但有太多的小細節(示例代碼,結果等)以允許任何人以任何確定的程度回答它。 –
這個結果看起來並不像它被切斷。 – miken32
我在這裏看不到問題。你有兩個訂單,每個訂單有兩個工作站。 JSON不被截斷。 SQL Server可以返回等價的NVARCHAR(max),所以不應該成爲問題。 – JNevill