我在SQL Server 2005數據庫的表中有一個xml列設置,我嘗試通過php 5.2向xml樹添加一個節點。 xml的結構由一個名爲「YearsAttended」的根節點和一個名爲「year」的子節點組成。下面是我正在運行的當前sql腳本。使用PHP 5.2在Sql Server 2005數據庫中修改xml列mssql_query
DECLARE @PID int
SET @PID = 8112
IF (SELECT Years FROM YearsAttended WHERE [email protected]) IS NULL
UPDATE YearsAttended Set Years = '<YearsAttended></YearsAttended>'
WHERE ParticipantID = @PID;
UPDATE YearsAttended
SET Years.modify('insert <year>2003</year> as first into (/YearsAttended)[1]')
WHERE ParticipantID = @PID;
第一個UPDATE語句正常工作,但我無法獲得第二個更新語句在PHP 5.2中工作。但是,它通過SQL Server Management Studio工作,同時針對同一個數據庫。
的PHP代碼我目前使用的樣子:
$yaQuery = "DECLARE @PID int
SET @PID = 8112
IF (SELECT Years FROM YearsAttended WHERE [email protected]) IS NULL
UPDATE YearsAttended Set Years = '<YearsAttended></YearsAttended>'
WHERE ParticipantID = @PID;
UPDATE YearsAttended
SET Years.modify('insert <year>2015</year> as first into (/YearsAttended)[1]')
WHERE ParticipantID = @PID;";
$yaResult = mssql_query($yaQuery);
if(!$yaResult)
{
die("Error: " . mssql_get_last_message());
}
沒有錯誤被拋出,但節點<year>2015</year>
沒有插入 <YearsAttended></YearsAttended>
在PHP 5.2。我也嘗試將查詢分隔成2個不同的mssql_query調用,但同樣的問題發生。我相當新的PHP,所以我不會懷疑,如果我忽略了一些東西。有任何想法嗎?
注意:8112和2015將被替換爲php變量。
在之間添加GO語句並檢查 – radar 2014-09-23 04:16:02