我遇到了一些不太合理的東西。我注意到當您嘗試將數據從SQL Server數據庫返回給PHP時發生了一個奇怪的事件。如果您在PHP中使用SQL Sever Native Client驅動程序,則應根據在線文章將NVARCHAR(MAX)作爲流類型返回。在SQL Server Management Studio中,如果我創建這些數據類型的數據類型爲nvarchar(最大)字段中返回一個流的新表:如果我創建使用這些數據類型,然後爲nvarchar(最大)表SQL Nvarchar(max)不能按預期工作
[PK][int]
[nvarchar(255)]
[nvarchar(max)]
返回其實際價值而不是流。
[PK][int]
[nvarchar(256)]
[nvarchar(max)]
我看到的地方,你不能正確使用爲nvarchar(最大)與PHP,如果你不說使用SQL Native Client驅動程序,然而,我有它編碼中使用它。這是在Windows Server 2003上使用SQL Server 2005,PHP 5.3進行的。
任何人都可以解釋爲什麼我可以在一個表中獲取nvarchar(max)的實際值,而不是其他值嗎?我不需要知道如何解決它,我使用NVARCHAR(4000)我的表無論如何,我只想知道爲什麼NARCHAR(256)允許NVARCHAR(MAX)工作,即使它是不應該根據我在網上看到的工作。
編輯:
這是我使用和更改訪問使用存儲的參數基本的PHP代碼:
<?php
$user = "usercm";
$pass ="cmuserpassword";
try{$conn = new PDO("odbc:DRIVER={SQL Server Native Client 10.0};SERVER=EXAMPLE;DATABASE=EXAMPLE;",$user,$pass);}
catch(PDOException $e){echo "Connection Failed";}
if($conn)
{
$uspGetAll = $conn->prepare("{CALL uspGetPowerDetails()}");
if($uspGetAll->execute())
{
$results = $uspGetAll->fetchAll(PDO::FETCH_ASSOC);
$_SESSION['testExample'] = $results;
}
$conn = null;
?>
我不想知道其他車手,我只是想知道爲什麼聲明爲256或更高的不同字段會更改nvarchar(MAX)是否作爲流返回。
你還沒有提到你的DBMS是什麼。我假設SQL Server並重新標記相應的 - 如果我錯了,隨時糾正它。 –
是的,它是SQL Server,只是添加了。我原本提到它,但是當我刪除了一部分我不需要的問題時意外刪除了它。 –
需要更多信息。什麼顯示?什麼是期望的輸出? – Zane