【问题标题】:MSSQL/Codeignitre active record query returning no recordsMSSQL/Codeignitre 活动记录查询不返回任何记录
【发布时间】:2014-01-22 07:44:29
【问题描述】:

我正在尝试使用 codeigniter 活动记录进行简单的 SQL 查询(MSSQL 数据库 - 驱动程序 sqlsrv),它在我的本地主机上正常工作,但在我的 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] => 
)

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

【问题讨论】:

  • 好吧,我找到了解决方案,虽然它与编程没有任何关系,就像我提到它在我的本地主机上完美运行,我也在另一个在线 Windows 服务器上尝试过,godaddy 家伙告诉我的表太大了,查询花费了更多时间(即使我拉了 10-20 行!)而且他们无能为力,所以我将我的代码切换到 rackspace 就可以了,一切正常!所以如果你有类似的问题并且你正在使用godaddy,找另一个服务器,不是你的代码让你毛骨悚然,而是godaddy!

标签: php sql sql-server codeigniter


【解决方案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();

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 2014-10-08
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多