我使用的是 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 表格
jo_banner_to_store 表
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/