MSSQL / Codeignitre活动记录查询不返回任何记录

时间:2014-01-22 07:44:30

标签: php sql sql-server codeigniter

我正在使用codeigniter活动记录尝试简单的SQL查询(MSSQL数据库 - 驱动程序sqlsrv),它在我的localhost上工作,但不在我的godaddy设置上工作!

即使很奇怪,如果我运行count_all_records它会返回精确的行数,但当我尝试获得'TOP 100'记录时,它会返回一个空数组。

SELECT COUNT(*) AS numrows FROM basic

返回TABLE'basic'中的行数,但

SELECT  TOP 100 * FROM basic ORDER BY SSN

返回一个空数组(所有这些在localhost中运行正常 - 相同的配置)

计算行的活动记录查询:

$this->db->from("basic");
$count = $this->db->count_all_results();

获取TOP 100行的活动记录查询:

$limit = 100; $start = 0;
$sidx = 'SSN'; $sord = 'asc';

$this->db->from("basic");
$result = $this->db->order_by($sidx, $sord)->limit($limit, $start)->get()->result_array();

我已经检查过配置,登录/注册在应用程序上工作正常我正在工作但是这个特定的查询(在多个表上)无法返回任何数据!

由于某种原因,它返回一个空的CI_DB_sqlsrv_result对象

CI_DB_sqlsrv_result Object
(
    [conn_id] => Resource id #2
    [result_id] => Resource id #8
    [result_array] => Array
        (
        )

    [result_object] => Array
        (
        )

    [custom_result_object] => Array
        (
        )

    [current_row] => 0
    [num_rows] => 100
    [row_data] => 
)

任何想法我可能做错了什么!

2 个答案:

答案 0 :(得分:1)

简单明了

$this->db->select('*');
$this->db->from('basic');
$this->db->order_by($sidx, $sord); 
$this->db->limit($limit, $start);
$query = $this->db->get(); 

或者您可以使用方法链接,如下所示。

$this->db->select('*')->from('basic')->order_by($sidx, $sord)->limit($limit, $start);
$query = $this->db->get();

我认为问题在于你的方法链。

答案 1 :(得分:0)

您可以在sqlsrv_driver.php中修复函数_limit()以使用limit,在mysql中启动。 请阅读http://ahmad-firuze.blogspot.com/2013/05/codeigniter-sqlsrvdriverphp-function.html