我是CodeIgniter的新手,我的新工作中的一个项目是在CodeIgniter中构建的,所以我使用的是以前程序员编写的基础。
我试图在orders_model中创建一个方法,该方法包含一个我无法从中获得任何结果的查询。
我直接在MS SQL Server Management Studio 08中构建了查询并在那里获得了超过200行,但是当我将其粘贴到我的方法中时,查询的结果资源是错误的。
我从我创建的另一个方法中复制了这个方法,该方法工作正常,甚至删除了所有验证,因此它只会运行并返回查询。
以下是精简方法:
public function get_part_index($pick_id, $return_data=true)
{
$orders = $this->load->database('orders', true);
$sql = "SELECT
u.metraPartNumber ,
STUFF(
(
SELECT
DISTINCT ', ' + ic.Box
FROM
orderScans.dbo.FullCaseScanTable AS ic JOIN upcCodeDatabase.dbo.upc AS iu
ON ic.FullUccCode = iu.fullUccCode
WHERE
u.PartNumber = iu.PartNumber
AND c.PickNumber = ic.PickNumber
GROUP BY
ic.Box FOR XML PATH('')
) ,
1 ,
1 ,
''
) AS BoxLocation
FROM
orderScans.dbo.FullCaseScanTable AS c JOIN upcCodeDatabase.dbo.upc AS u
ON c.FullUccCode = u.fullUccCode
WHERE
c.PickNumber = ?
GROUP BY u.PartNumber ,
c.PickNumber
ORDER BY
u.PartNumber";
$query = $orders->query($sql, array($pick_id));
/***********************************************
* When I add die(var_dump($query)) here I get (bool)false
***********************************************/
if ($query !== FALSE) {
$result['data'] = $query->result_array();
$result['success'] = TRUE;
$result['msg'] = NULL;
} else {
$result['data'] = NULL;
$result['msg'] = "Pick ID '$pick_id' not found!";
$result['success'] = FALSE;
}
return $result;
}
我唯一能想到的可能是数据库类/适配器不喜欢子查询的东西吗?
任何帮助将不胜感激!感谢
答案 0 :(得分:0)
在尝试了一个视图(它做了同样的事情......)后,我决定拉动原始数据并运行php中的数据,将它放在一起我想要的方式。