这是我正在运行的代码。
$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的列。
答案 0 :(得分:1)
我正在呼应
$result
并且它没有显示任何内容
row()
返回一个对象,而不是字符串,即使您只选择了一列。要访问该值,您仍然必须明确地调用它:
$record = $query->row();
echo $record->ContactID;
如果仍然无效,请尝试一次运行一个查询,而不是一次性将所有查询传递给$this->db->query()
。
...与往常一样,使用error_reporting(E_ALL)
启用错误报告,并使用var_dump()
或print_r()
等内容来调试变量,而不是echo
。