CodeIgniter 2 MSSQL查询返回false而不是resource

时间:2015-03-09 20:19:43

标签: sql-server codeigniter-2

我是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;
}

我唯一能想到的可能是数据库类/适配器不喜欢子查询的东西吗?

任何帮助将不胜感激!感谢

1 个答案:

答案 0 :(得分:0)

在尝试了一个视图(它做了同样的事情......)后,我决定拉动原始数据并运行php中的数据,将它放在一起我想要的方式。