php - opencart 1.4.9.3 mysql 未知列报错

标签 php mysql sql left-join opencart

我使用的是 opencart 1.4.9.3 版本。我从这里下载了横幅管理器 http://www.opencart.com/index.php?route=extension/extension/info&extension_id=4886 .我遵循了那个安装步骤。

当我点击 EXTENSIONS > BANNERS 时返回这个错误

Error: Unknown column 'jo_bts.store_id' in 'field list'
Error No: 1054
SELECT jo_bts.store_id, s.name FROM jo_banner_to_store bts LEFT JOIN jo_store s ON s.store_id = bts.store_id WHERE banner_id = 1 ORDER BY store_id

但是在我的数据库表中我有 store_id

jo_banner 表格

enter image description here

jo_banner_to_store

enter image description here

public function getBannerStores($banner_id) {
        $query = $this->db->query("SELECT " . DB_PREFIX . "bts.store_id, s.name FROM " . DB_PREFIX . "banner_to_store bts LEFT JOIN " . DB_PREFIX . "store s ON s.store_id = bts.store_id WHERE banner_id = " . (int) $banner_id . " ORDER BY store_id");
        return $query->rows;
    }

最佳答案

根据给定的查询,您正在使用未定义的 别名 jo_bts,我猜别名的定义位置创建者未使用表前缀,将 bts 更改为 ". DB_PREFIX . "bts

public function getBannerStores($banner_id) {
        $query = $this->db->query("SELECT " . DB_PREFIX . "bts.store_id, s.name 
        FROM " . DB_PREFIX . "banner_to_store " . DB_PREFIX . "bts 
        LEFT JOIN " . DB_PREFIX . "store s 
         ON s.store_id = " . DB_PREFIX . "bts.store_id WHERE banner_id = " . (int) $banner_id . "
         ORDER BY store_id");
        return $query->rows;
    }

所以最终查询看起来像

SELECT 
  jo_bts.store_id,
  s.name 
FROM
  jo_banner_to_store jo_bts 
  LEFT JOIN jo_store s 
    ON s.store_id = jo_bts.store_id 
WHERE banner_id = 1 
ORDER BY store_id 

关于php - opencart 1.4.9.3 mysql 未知列报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030394/

相关文章:

php - 我到底如何用数据库中的实际值返回这些数组?继续出现空白

sql - 我可以将 SQL Server Enterprise 镜像到标准吗?

php - SQL显示最新数据

sql - mysql插入时报错1064

javascript - 使用ajax调用PHP脚本

javascript - 将数据透视表字段和筛选器保存在数据库中

php - 如何将用户输入的换行符保存到数据库。 (jQuery/php/mysql)

mysql - 如何将 SphinxSE 插件添加到 Percona XtraDB 集群?

mysql - 如何在 MYSQL 中获取带分区的 RowNumber()

PHP内置服务器,有什么办法可以配置它来显示目录文件?