我有一个已编写的sql查询,但from命令是小写的。我喜欢它的格式是大写但如果我改变它我得到错误1064.
select,where等等都是小写的,但是当我改为高位时它们工作正常,只有WHERE语句才会导致这种情况。
这是sql:
$listing_sql = "SELECT " . $select_column_list .
"p.products_id, p.products_model, p.manufacturers_id, p.products_price, " .
"p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as " .
"specials_new_products_price, IF(s.status, s.specials_new_products_price, " .
"p.products_price) as final_price ".
"FROM " .
TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " .
TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " .
TABLE_SPECIALS . " s on p.products_id = s.products_id, " .
TABLE_PRODUCTS_TO_CATEGORIES . " p2c WHERE p.products_status = '1' AND " .
"p.products_id = p2c.products_id and pd.products_id = p2c.products_id and " .
"pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" .
(int)$current_category_id . "'";
这是回声时sql的样子:
SELECT p.products_image,
pd.products_name,
p.products_id,
p.products_model,
p.manufacturers_id,
p.products_price,
p.products_tax_class_id,
IF(s.status, s.specials_new_products_price, NULL) AS
specials_new_products_price,
IF(s.status, s.specials_new_products_price, p.products_price) AS
final_price
FROM products_description pd,
products p
LEFT JOIN manufacturers m
ON p.manufacturers_id = m.manufacturers_id
LEFT JOIN specials s
ON p.products_id = s.products_id,
products_to_categories p2c
WHERE p.products_status = '1'
AND p.products_id = p2c.products_id
AND pd.products_id = p2c.products_id
AND pd.language_id = '1'
AND p2c.categories_id = '36'
答案 0 :(得分:1)
(受过教育的)猜测是你在谈论OsCommerce安装。
如果情况并非如此,那么您可能正在使用曾经分离过的东西(或其前身, tep )。
您遇到的问题可能是因为splitPageResults
类中的构造函数使用区分大小写的strpos
而不是stripos
,它不区分大小写。
所以...它的长短是,
如果这确实是oscommerce:
编辑split_page_results.php文件
(1:/catalog/classes/split_page_results.php,2:/catalog/admin/classes/split_page_results.php)
并在构造函数中用stripos替换strpos。
即。变化
$pos_from = strpos($this->sql_query, ' from', 0);
为...
$pos_from = stripos($this->sql_query, ' from', 0);
如果这不是osCommerce,只需寻找类似的东西。
的php doc答案 1 :(得分:0)
尝试加入产品:
SELECT p.products_image,
pd.products_name,
p.products_id,
p.products_model,
p.manufacturers_id,
p.products_price,
p.products_tax_class_id,
IF(s.status, s.specials_new_products_price, NULL) AS specials_new_products_price,
IF(s.status, s.specials_new_products_price, p.products_price) AS final_price
FROM products_description pd
LEFT JOIN manufacturers m
ON p.manufacturers_id = m.manufacturers_id
LEFT JOIN specials s
ON p.products_id = s.products_id,
products_to_categories p2c
LEFT JOIN products p ON ( p.products_id = p2c.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 = '1'
AND p2c.categories_id = '36'