如何从原始查询中获取 sql 结果

Posted

技术标签:

【中文标题】如何从原始查询中获取 sql 结果【英文标题】:How to get sql result from raw query 【发布时间】:2021-10-12 02:39:13 【问题描述】:

在 codeIgniter 中获取 SQL 结果时出错。当我在 phpmyadmin 中使用相同的查询时,我成功获得了结果。 有什么问题,请帮忙。

型号:

public function calculateScore()

    $team_points = $this->db->query('SELECT teams.team_name,
                                        COUNT(matches.winner) AS Win
                                    FROM
                                        matches
                                    RIGHT JOIN teams ON teams.team_name = matches.winner
                                    GROUP BY teams.team_name, matches.winner
                                    ORDER BY win DESC');

    return $team_points;

错误:


    "conn_id": 
        "affected_rows": null,
        "client_info": null,
        "client_version": null,
        "connect_errno": null,
        "connect_error": null,
        "errno": null,
        "error": null,
        "error_list": null,
        "field_count": null,
        "host_info": null,
        "info": null,
        "insert_id": null,
        "server_info": null,
        "server_version": null,
        "sqlstate": null,
        "protocol_version": null,
        "thread_id": null,
        "warning_count": null
    ,
    "result_id": 
        "current_field": null,
        "field_count": null,
        "lengths": null,
        "num_rows": null,
        "type": null
    ,
    "result_array": [],
    "result_object": [],
    "custom_result_object": [],
    "current_row": 0,
    "num_rows": null,
    "row_data": null

【问题讨论】:

【参考方案1】:

使用这个

return $team_points->result();

代替

return $team_points;

【讨论】:

【参考方案2】:

如果你需要一个数组作为结果:

return $team_points->result_array();

或者只是标准对象:

return $team_points->result();

另外,我认为你的sql语句有错误。 你打算写吗:

ORDER BY matches.winner

【讨论】:

以上是关于如何从原始查询中获取 sql 结果的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5 Eloquent 中获取原始 SQL 查询的结果

Django:在一行中获取原始 SQL 查询的结果

在执行查询之前,如何从 Laravel 的查询构建器中获取原始查询字符串?

如何将表达式树转换为部分 SQL 查询?

从 Phalcon 查询生成器获取原始 sql

如何从 Pentaho-Kettle 中基于动态选择的 sql 查询中获取结果集?