【问题标题】:SQL Query Codeigniter Query Builder PHPSQL 查询 Codeigniter 查询生成器 PHP
【发布时间】:2020-08-06 21:25:00
【问题描述】:

我需要查询数据库,其中 total_pago 必须等于 contas_pagar

表中的 valor
class Phpexcel_model extends CI_Model {

function get_users() {
    
    $query = $this->db->get_where("contas_pagar", array('total_pago' == 'valor'));
           
    return $query->result_array();
    
}

Database image

作为图像,结果应该只带来与查询匹配的数据,但它带来了表中的所有数据

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    根据文档 (https://codeigniter.com/userguide3/database/query_builder.html#selecting-data),您需要以下内容(注意 ===>):

    ->get_where('contas_pagar', array('total_pago' => 'valor'))
    

    你现在正在评估

    ->get_where('contas_pagar', array(false))
    

    因为在 PHP 中字符串 'total_pago' 不等于 'valor'

    【讨论】:

    • 这可能行不通...即使您使用=>== 提出了一个有效的观点,where 子句仍在寻找字符串 ('valor')在看似数字的字段中 (total_pago)
    【解决方案2】:

    假设total_pago 是一个数字字段,valor 是一个包含数字的变量,您的get_where 语句应该是:

    ->get_where('contas_pagar', array('total_pago' => $valor))
    

    【讨论】:

      【解决方案3】:

      您可以使用它来检查您的查询。这样我们就可以看到由 mysq/sql 执行的整个查询,以便我们可以检查错误发生在哪里

      echo $this->db->last_query()
      

      您也可以使用自定义查询

      $this->db->query('SELECT * FROM contas_pagar WERE total_pago=? ',[$valor])->result_array()
      

      【讨论】:

        【解决方案4】:
        function get_users() {
            
            $query = $this->db->get_where("contas_pagar", array('total_pago' => 'valor'));
                   
            return $query->result_array();
            
        }
        

        【讨论】:

        • 如果你使用get_where,你也不需要$query->get()
        • 我没看懂答案,你能解释一下吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-05
        • 1970-01-01
        • 1970-01-01
        • 2019-05-22
        • 1970-01-01
        • 1970-01-01
        • 2021-07-08
        相关资源
        最近更新 更多