bestlong 怕失憶論壇

 

 

搜索
bestlong 怕失憶論壇 論壇 EC OSC 出現 1054 - Unknown column 'p.products_id' in 'o ...
查看: 6273|回復: 4
go

OSC 出現 1054 - Unknown column 'p.products_id' in 'on clause' 錯誤 [複製鏈接]

Rank: 9Rank: 9Rank: 9

1#
發表於 2010-9-20 00:25 |只看該作者 |倒序瀏覽 |打印
測試移轉 OSCommerce 到 MySQL5 環境,在點選商品分類時,某些分類會出現了下列 SQL 語法問題

1054 - Unknown column 'p.products_id' in 'on clause'

select count(p.products_id) as total from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '4' and p2c.categories_id = '1'

[TEP STOP]

將該 SQL 整理後如下
  1. select count(p.products_id) as total
  2. from products_description pd
  3. , products p
  4. left join manufacturers m on p.manufacturers_id = m.manufacturers_id
  5. , products_to_categories p2c
  6. left join specials s on p.products_id = s.products_id
  7. where p.products_status = '1'
  8.   and p.products_id = p2c.products_id
  9.   and pd.products_id = p2c.products_id
  10.   and pd.language_id = '4'
  11.   and p2c.categories_id = '1'
複製代碼
有點奇怪的感覺。不過,此 SQL 在 MySQL 4.3 下是會正常執行,真的很隨性阿。
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

2#
發表於 2010-9-20 00:32 |只看該作者
依照 Error Message - 1054 - Unknown column 'p.products_id' in 'on clause' 的說法,需要修改 index.php 與 advanced_search_result.php 兩個檔案。

保存原文的附件,找時間再試著修改看看。

在 9 Sep 2008 回應的附件
How to fix 1054-problem.zip (2.75 KB, 下載次數: 445)

在 11 Nov 2006 回應的附件
1054-problem.zip (923 Bytes, 下載次數: 369)
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

3#
發表於 2010-9-20 00:37 |只看該作者
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

4#
發表於 2010-9-22 00:25 |只看該作者
目前我是沒有依據上面所列的說明來處理
因為也不確定手頭上在處理的系統版本有多少差異
畢竟是有被人工修改過的狀況
還是直接自行修改
其實只要對 SQL 語法有足夠的概念
將 index.php 與 advanced_search_result.php 兩個程式內的 SQL 指令調整一下
將下列舊版 MySQL 可以接受的語法結構
  1. select f1, f2, f3
  2. from T1 A, T2 B
  3. left join T3 C on A.id = C.id
  4. where A.id = '1'
  5.   and A.id = B.id
複製代碼
修改成為
  1. select f1, f2, f3
  2. from T1 A
  3.      join T2 B on A.id = B.id
  4. left join T3 C on A.id = C.id
  5. where A.id = '1'
複製代碼
就可以轉換到 MySQL 5.X 版環境上跑了。
不過以前真的沒仔細去看 OSC 在 SQL 部分的程式碼。
現在幫朋友作移轉而真的看了後,會有很驚嚇的感受。
真的是系統能跑且正確就好。
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 1

5#
發表於 2011-3-1 10:25 |只看該作者
2011 年的 OSC 2.3.1 台灣中文版已開放下載 ,
建議改裝新版的試試.

請參考 http://www.twosc.com
台灣 OSC 社群
‹ 上一主題|下一主題

Archiver|怕失憶論壇

GMT+8, 2024-6-15 05:57 , Processed in 0.011035 second(s), 12 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.