Affects versions 1.3.5 and above
For people that are using database caching, if the serialized session variable reaches 64Kb then the constants collapse throughout the site. This is commonly presented as a SQL error with something allong the lines of
error: check your sql syntax where EXPECTED_SORT_ORDER
this collapsed constant is not predictable as it depends on how zencart is configured and which constants are looked for first. The main cause is installing many shipping and payment modules so that the stored session variable is over 65k, which is leading to people saying "something's wrong with your module". Commonly the first time the site is visited, nothing will go wrong as the data is pulled from the database and then stored in the cache, the second time when the data is retrieved from the cache the site collapses.
The fix: The database db_cache should be created with the column cache_data as a mediumblob not as a blob for future version of zencart.
Current users of zencart can either change to to file based sessions or can upgrade their database manually by using the query
ALTER TABLE db_cache CHANGE COLUMN cache_data cache_data MEDIUMBLOB NOT NULL
This query should be run through either a mysql console or phpmyadmin. It should also be included in the upgrades from version 1.3.5 upwards.
Philip.
Bookmarks