我一直试图在osCommerce 2.3安装中添加一些自定义字段。这些字段(products_lot, products_location, products_serial_number, products_note
)都按照它们应该显示的方式显示,并且它们都是从我的数据库中的products_description
表中提取的。我正在迁移一个已经有这些行的数据库,每个字段都显示(拉取)字段值,正如我所期望的那样。
然而,当我试图保存新值或将现有产品更新到这些行时,它会抛出1054错误:1054 - Unknown column 'products_lot' in 'field list'
如果我使用product_description
将这些字段的tep_db_prepare_input()
部分移动到另一个数组中,则不会引发错误,但没有任何值实际保存到数据库中。它要么分割这些字段,要么在以前有数据的地方什么都不保存。例如,将"5"添加到Products Location:ye会在数据库中生成一个大的胖零。
TL;DR它可以很好地提取信息,但无法保存所有信息,我不知道为什么
这是我正在使用的categories.php
文件,用于创建和存储这些字段:
http://pastebin.com/raw.php?i=wHrddQyq
所有MySQL行的名称都是匹配的,所以products_description
表有products_lot
等。
如果您的自定义字段在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将未定义。