這是我正在運行的代碼。查詢使用CodeIgniter的活動記錄不返回值...
$query = $this->db->query("DECLARE @tmp TABLE (ContactID UNIQUEIDENTIFIER)
INSERT INTO tblCD (" . ArrayToString($fieldsCDArray) . ")
OUTPUT Inserted.ContactID INTO @tmp
VALUES (" . ArrayToDBString($valuesCDArray) . ")
INSERT INTO tblCCO (ContactID, " . ArrayToString($fieldsCCOArray) . ")
VALUES ((SELECT ContactID FROM @tmp), " . ArrayToDBString($valuesCCOArray) . ")
SELECT ContactID FROM @tmp");
$result = $query->row();
我跑$ this-> db-> last_query()來驗證SQL代碼實際上在SQL服務器中工作。如預期的那樣,它最終返回一行。但是我沒有從CodeIgniter返回上面的代碼。我也試着用result()和result_array()來運行它,只是爲了踢,而且什麼也不是。
CodeIgniter不喜歡從一個查詢中返回多個語句的結果嗎?還是我必須以不同的方式得到結果? (對於任何人要求,我只是想獲得最後插入的ID,但它是一個GUID,所以我不能使用$ this-> db-> insert_id()
任何幫助或建議,將不勝感激。
此外,忽略ArrayToDBString()方法,那些絕對不是問題,因爲像我說的那樣,我已經打印了最後一個查詢,併成功通過SQL運行它。 SQL是所謂的ContactID一列。
你如何驗證沒有任何回報?此代碼不會有任何輸出。如果您不確定查詢本身是否會導致問題,那麼您是否使用更簡單的查詢進行測試?你似乎在這裏有幾個疑問,你一次試一次嗎? – 2011-12-22 21:13:49
我在迴應$結果,它什麼也沒有顯示。我還完成了$ this-> db-> last_query()來提取SQL,然後直接在Management Studio中運行它,並驗證它返回結果。 – 2011-12-22 21:19:16
var_dump()代替它。如果它是假的,echo將不會顯示它。一次只執行一步,首先看代碼是否工作,然後看看爲什麼沒有結果 – 2011-12-22 21:20:40