自定义字段不保存到MySQL

时间:2015-03-30 18:04:18

标签: php mysql oscommerce

我一直试图在我的osCommerce 2.3安装中添加一些自定义字段。这些字段(products_lot, products_location, products_serial_number, products_note)都显示为它们应该显示的内容,它们都来自我的数据库中的products_description表。我正在迁移已经拥有这些行的数据库,并且每个字段都正如我所期望的那样显示(拉动)字段值。

但是,当我尝试保存新值或将现有产品更新为这些行时,会引发1054错误:1054 - Unknown column 'products_lot' in 'field list'

如果我将这些字段的tep_db_prepare_input()部分移动到具有product_description的其他数组中,则不会抛出错误,但实际上没有任何值保存到数据库中。它要么切断那些字段,要么根本没有保存任何以前有数据的地方。例如,添加' 5'到产品位置:数据库中有一个很大的零点。

TL; DR 它提取信息很好,但它无法保存所有,我不知道为什么。 。 。

这是我正在使用的categories.php文件来创建和存储这些字段:

http://pastebin.com/raw.php?i=wHrddQyq

所有MySQL行都被命名为匹配,因此products_description表具有products_lot等。

1 个答案:

答案 0 :(得分:3)

如果您的自定义字段位于products表中,则不会为每个语言ID存储该表中的行。 products_description表包含每个语言ID的行。

自定义字段的代码位于products表中插入/更新的$ sql_data_array中。如果每种语言的自定义字段不同并且它们存储在products_description表中,则需要将这些字段移动到

中的$ sql_data_array中
    for ($i=0, $n=sizeof($languages); $i<$n; $i++) { 

环。否则,$ language_id将是未定义的。