You’ll get this error once your form exceeded the 8126-byte limit sets from the InnoDB of Godaddy Shared Hosting, this happens if you have a lot of LONGTEXT, TEXT and large VARCHAR fields from your table. For some reason, increasing the memory for your InnoDB database in the server in shared hosting is quite impossible and it requires another way to fix this error.
Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
But if you have access to it and still gonna use InnoDB database, all you have to do is edit the following on my.conf of your MySQL database.
innodb_page_size=32K
innodb_file_format=Barracuda
innodb_file_per_table=1
For Godaddy Shared Hosting
For people who have no access to MySQL configuration, you can change the type of your database into MyISAM and add the option row_format=Compressed.
To do this, you just have to alter the table with the following SQL command.
ALTER TABLE YOUR_TABLE_NAME
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;
Execute the command and it’s all good. Your form can now send a large amount of data to your database.
1 Comment
Wayne
The only way I could succeed was to:
1. Go to the offending table.
2. Select “Operations”.
3. Choose “MyISAM” under Storage Engine
4. After saving, check to ensure the ROW_FORMAT at the bottom of the same page is set to “Dynamic”