【问题标题】:codeigniter database error number 1052codeigniter 数据库错误号 1052
【发布时间】:2012-08-03 02:58:02
【问题描述】:

这是确切的错误:

Error Number: 1052

Column 'id' in where clause is ambiguous

SELECT * FROM (`membership_personal`) JOIN `membership_account` ON `membership_account`.`memberid` = `membership_personal`.`id` JOIN `swapaccount` ON `swapaccount`.`memberid` = `membership_account`.`memberid` WHERE `id` = '5'

Filename: /home/phpgod/public_html/johnnyarias/ci_website/models/generalfeaturesmodel.php

Line Number: 57

我知道这与连接的多个表中存在的 id 字段有关。所以我的问题是如何确保 where 子句中的 id 字段仅应用于 member_personal 表中的 id 字段?

【问题讨论】:

    标签: php mysql codeigniter join where-clause


    【解决方案1】:
    WHERE `member_personal `.`id` = '5'
    

    【讨论】:

    • 它说:'w​​here 子句'中的未知列'member_personal.id=5'
    • 你将如何将上述 where 子句放在 codeigniter 的数据库方法中?
    【解决方案2】:

    您收到错误的原因是字段id 存在于多个表中。所以MySql不可能判断你指的是哪个表的id

    解决方案是指定表名和列名。例如:

    `tablename`.`id` = '5'
    

    【讨论】:

    • 对,但是你会如何使用 codeigniters 数据库类来实现呢?
    • 我这样说:$this->db->where("`member_personal.id = '$memberid'");
    • 你知道如何正确使用 codeigniters 数据库类吗?
    【解决方案3】:
    $this->db->where('member_personal.id',5);
    

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 2018-09-18
      • 2017-06-06
      • 2017-02-12
      • 2018-04-15
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 2014-03-25
      相关资源
      最近更新 更多