CodeIgniter 2 MSSQL 查询 returns false 而不是资源
CodeIgniter 2 MSSQL query returns false instead of resource
我是 CodeIgniter 的新手,我新工作中的一个项目是用 CodeIgniter 构建的,所以我有点使用以前的程序员编写的片段作为基础。
我正在尝试在我们的 orders_model 中创建一个方法,其中包含一个我无法从中获得任何结果的查询。
我直接在 MS SQL Server Management Studio 08 中构建了查询并在那里获得了 200 多行,但是当我将其粘贴到我的方法中时,查询的结果资源是错误的。
我从我创建的另一个方法复制了这个方法,它运行良好,甚至删除了所有验证,所以它只会 运行 和 return 查询。
这是精简的方法:
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;
}
我唯一能想到的可能是数据库 class/adapter 不喜欢子查询的东西?
如有任何帮助,我们将不胜感激!谢谢
在尝试了一个视图(做了完全相同的事情...)之后,我决定提取原始数据并 运行 通过 php 中的数据,按照我想要的方式将它们组合在一起。
我是 CodeIgniter 的新手,我新工作中的一个项目是用 CodeIgniter 构建的,所以我有点使用以前的程序员编写的片段作为基础。
我正在尝试在我们的 orders_model 中创建一个方法,其中包含一个我无法从中获得任何结果的查询。
我直接在 MS SQL Server Management Studio 08 中构建了查询并在那里获得了 200 多行,但是当我将其粘贴到我的方法中时,查询的结果资源是错误的。
我从我创建的另一个方法复制了这个方法,它运行良好,甚至删除了所有验证,所以它只会 运行 和 return 查询。
这是精简的方法:
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;
}
我唯一能想到的可能是数据库 class/adapter 不喜欢子查询的东西?
如有任何帮助,我们将不胜感激!谢谢
在尝试了一个视图(做了完全相同的事情...)之后,我决定提取原始数据并 运行 通过 php 中的数据,按照我想要的方式将它们组合在一起。