Modify ↓
#1505 closed Erweiterung (fixed)
Tabelle orders. Spalte shipping_class erweitern
| Reported by: | Volker Strähle | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.5.0 |
| Component: | Shop | Version: | trunk |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Die Spalte shippingclass der Tabelle orders ist nur 32 Zeichen lang. Damit lassen sich nur Module nutzen deren Klassenname max 15 Zeichen lang ist. Grund: der Klassenname steht dort 2x mit Unterstrich verbunden drin. (32-1=31, 31:2=15)
Überschreitet ein Klassenname die Länge von 15 Zeichen so wird einfach am Ende in der DB abgeschnitten, z. B.:
langerklassenname_langerklassenna
Attachments (0)
Change History (4)
comment:1 by , 7 years ago
| Milestone: | modified-shop-2.0.4.2 → modified-shop-2.0.5.0 |
|---|---|
| Type: | Bug/Fehler → Erweiterung |
comment:2 by , 7 years ago
Note:
See TracTickets
for help on using tickets.

Man kann das aber auch alternativ so lösen:
function install() { // ... $col_struct_query = xtc_db_query("SELECT CHARACTER_MAXIMUM_LENGTH FROM information_schema.COLUMNS WHERE TABLE_NAME= '".TABLE_ORDERS ."' AND TABLE_SCHEMA= '". DB_DATABASE ."' AND COLUMN_NAME = 'shipping_class'"); if(xtc_db_num_rows($col_struct_query) > 0){ $colsizes = xtc_db_fetch_array($col_struct_query); if($colsizes['CHARACTER_MAXIMUM_LENGTH'] < 33){ $db_alter_columns = xtc_db_query("ALTER TABLE ".TABLE_ORDERS." CHANGE shipping_class shipping_class VARCHAR(33)"); } } }So kann jeder in seinem Modul abfragen ob die Datenlänge ausreicht und ggf. auf das notwendige Minimum erweitern. Bläht die Tabelle nicht unnötig auf.