Php 奇怪的MYSQL错误
我在文件中的查询在php文件中如下所示:Php 奇怪的MYSQL错误,php,mysql,sql,mysql-error-1054,Php,Mysql,Sql,Mysql Error 1054,我在文件中的查询在php文件中如下所示: SELECT p.products_id as v_products_id, p.products_model as v_products_model, p.products_image as v_products_image, p.products_price as v_products_price, p.products_sku a
SELECT
p.products_id as v_products_id,
p.products_model as v_products_model,
p.products_image as v_products_image,
p.products_price as v_products_price,
p.products_sku as v_products_sku,
p.products_upc as v_products_upc,
p.products_weight as v_products_weight,
p.products_date_added as v_date_added,
p.products_date_available as v_date_avail,
p.products_tax_class_id as v_tax_class_id,
p.products_quantity as v_products_quantity,
p.manufacturers_id as v_manufacturers_id,
subc.categories_id as v_categories_id
FROM
zen_products as p,
zen_categories as subc,
zen_products_to_categories as ptoc
WHERE
p.products_id = ptoc.products_id AND
p.products_model = 'M150XN05' AND
ptoc.categories_id = subc.categories_id
我收到一个返回的错误:
MySQL错误1054:“字段列表”中的未知列“p.produc1925ts_tax_class_id”
执行时:
SELECT
p.products_id as v_products_id,
p.products_model as v_products_model,
p.products_image as v_products_image,
p.products_price as v_products_price,
p.products_sku as v_products_sku,
p.products_upc as v_products_upc,
p.products_weight as v_products_weight,
p.products_date_added as v_date_added,
p.products_date_available as v_date_avail,
-- extra 1925 here
p.produc1925ts_tax_class_id as v_tax_class_id,
p.products_quantity as v_products_quantity,
p.manufacturers_id as v_manufacturers_id,
subc.categories_id as v_categories_id
FROM
zen_products as p,
zen_categories as subc,
zen_products_to_categories as ptoc
WHERE
p.products_id = ptoc.products_id AND
p.products_model = 'M150XN05' AND
ptoc.categories_id = subc.categories_id
发生了什么事额外的“1925”怎么会被放在选择的中间?我不知所措,我已经尝试了所有我能想到的可能导致这种情况的方法
这里的代码是完整的MySQL并不像您所期望的那样解析隐式连接 (删除引号是因为它是错误的段落,但这是我以前遇到的已知错误!) 为了避免混淆,我建议改用显式联接:
zen_products as p,
zen_categories as subc,
zen_products_to_categories as ptoc
WHERE
p.products_id = ptoc.products_id AND
p.products_model = 'M150XN05' AND
ptoc.categories_id = subc.categories_id
变成
zen_products as p
JOIN zen_products_to_categories as ptoc
ON p.products_id = ptoc.products_id
JOIN zen_categories as subc
ON ptoc.categories_id = subc.categories_id
WHERE p.products_model = 'M150XN05'
你能发布你的实际代码吗?以及你的
ep_query
函数吗?这听起来很愚蠢,但是试着删除行并重写它(手动)。类似的事情也发生在我身上,我的文本编辑器没有显示一些随机的unicode字符,但却把代码搞乱了。值得一试。正如Christian所建议的,尝试删除并重新键入。您的编辑器可能没有显示文本中的U+1925字符或类似字符。@rabudde,查询中的注释与本机MySQL扩展配合得很好。我不知道使用显式连接语法是否有助于解决此问题,但我认为您找到的“解释”是完全不相关的。你引用的摘录是关于在一个查询中混合隐式连接和显式连接,这里不是这样。啊,我道歉。我抓错了段落。不过,我确信我的诊断和解决方案是正确的,因为两周前我遇到了完全相同的问题!将立即删除报价,稍后再添加正确的报价。