使用CodeIgniter's活动记录查询没有返回值....


Query using CodeIgniter's Active Record not returning a value…

这是我正在运行的代码。

$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 server中工作。它最终像预期的那样返回单行。但是我没有得到任何从CodeIgniter与上述代码返回。我也试过用result()和result_array()来运行它,只是为了踢,仍然没有。

CodeIgniter是否不喜欢从查询中返回多个语句的结果,或者我必须以不同的方式获得结果?(对于任何人问,我只是想得到最后插入的id,但它是一个GUID,所以我不能使用$this->db->insert_id()。

任何帮助或建议将不胜感激。谢谢。

另外,忽略ArrayToDBString()方法,这些绝对不是问题,因为,就像我说的,我已经打印了最后一个查询并成功地通过SQL运行它。此外,通过SQL运行它时得到的结果是一个名为ContactID的单列。

我回显的是$result,但是没有显示

row()返回一个对象,而不是字符串,即使您只选择了一个列。要访问该值,仍然必须显式地调用它:

$record = $query->row();
echo $record->ContactID;

如果仍然不起作用,尝试一次运行一个查询,而不是一次将所有查询传递给$this->db->query()

…并且像往常一样,打开error_reporting(E_ALL)的错误报告,并使用var_dump()print_r()之类的东西来调试变量,而不是echo