Support » Plugin: Events Made Easy » Link in custom field gives database error

  • Resolved timb111

    (@timb111)


    I have a custom field for event itinerary, of type textarea. When I add a simple anchor link tag and try to save the event then it gives an error:

    WordPress database error: [Unknown column 'event_registration_trashed_email_body' in 'field list']

    I have the latest version of EME, v2.1.49.

    • This topic was modified 3 weeks ago by timb111.
    • This topic was modified 3 weeks ago by timb111.
Viewing 9 replies - 1 through 9 (of 9 total)
  • Plugin Author Franky

    (@liedekef)

    That column was added in version 2.1.36, so I guess you upgraded from an older version to 2.1.49 (btw 2.1.50 is the latest).
    This means something went wrong with your database upgrade (maybe your database user didn’t have enough rights to add/modify tables).
    The solution: go in EME options, tab “Other” and change “EME DB version” to 246 (in your case) and press “Save”. Upon saving, EME will try to update your database again and set the version back to the latest DB version. If that doesn’t fix it in your case, your wordpress database user has right issues and you should fix those.

    timb111

    (@timb111)

    Yes that’s right, I got the error in the older version, then tried updating to 2.1.49 this morning but still got the error.

    I changed the EME DB version to 246 and clicked “Save” and then tried putting the anchor link in, but it gave the same error.

    Then I updated to the latest version 2.1.51, and changed the EME DB version to 246 again and clicked “Save” and put the link in again, but still the error. After saving it shows the EME DB version as 257.

    I spoke with my hosting company to check the permissions, and they guided me to the Plesk control panel where there’s just one database. I clicked on the only database user which is “wordpress_1” and it shows it has “Read and Write” permission. Below that, all of the checkboxes for structure access (select, insert, update, etc) are all ticked. So they said that WordPress and the plugins should all have full access to the database.

    Is there something else that I can do to fix this?

    Thanks

    Plugin Author Franky

    (@liedekef)

    I don’t know the plesk control panel, but your user should have create access on tables and columns (not just read/write). if that’s not the case, new columns will not get created (that should show up in your php error log or wordpress debug log).

    Edit: I just tried it here by dropping that column from the wp_eme_events table and setting the DB version to 246. After pressing save, the coulmn gets created as expected.

    Edit 2: if your user can’t update the db, you can always do it manually vy executing a mysql sql statemnt like this:
    alter table wp_eme_events add event_registration_trashed_email_body text;
    but it is not recommended (and you might run into other problems where a column needs to be created later on …

    • This reply was modified 2 weeks, 6 days ago by Franky.
    • This reply was modified 2 weeks, 6 days ago by Franky.

    Yes the database user has full data and structure access, including Create.

    I tried again to reset the EME DB version to 246 and checked the php_error.log and saw errors like this for every table:

    [17-Nov-2019 00:22:21 UTC] WordPress database error Table 'mydb_eme_events' already exists for query CREATE TABLE mydb_eme_events (.....

    If there was a permissions issue then would there be a different error, like unable to create column? But there were only the table already exists errors.

    And this morning some people wanted to book for an event and the payment page was broken. I checked the log again and it showed these errors:

    [17-Nov-2019 12:18:58 UTC] PHP Warning:  require_once(payment_gateways/stripe/stripe-php-7.3.1/init.php): failed to open stream: No such file or directory in D:\Inetpub\vhosts\mysite.co.uk\httpdocs\wp-content\plugins\events-made-easy\eme_payments.php on line 1353
    [17-Nov-2019 12:18:58 UTC] PHP Fatal error:  require_once(): Failed opening required 'payment_gateways/stripe/stripe-php-7.3.1/init.php' (include_path='.;.\includes;.\pear') in D:\Inetpub\vhosts\mysite.co.uk\httpdocs\wp-content\plugins\events-made-easy\eme_payments.php on line 1353

    Just for the payment page to be fixed again I changed back to version 2.1.47 and now the payments are working again.

    What do you recommend? Thanks

    Plugin Author Franky

    (@liedekef)

    Then you clearly have other issues with your site. Between 2.1.47 and 2.1.51 nothing changed concerning stripe.
    As you can see on version 2.1.51 at https://plugins.trac.wordpress.org/browser/events-made-easy/tags/2.1.51/ , “payment_gateways/stripe/stripe-php-7.3.1/init.php” clearly exists (and I test stripe at another production site, no issues).
    And since you already had the problem with 2.1.49 and 2.1.47 works means something wrong with your updates (check the changelog in readme.txt, nothing that big changed between those 2 versions).
    The fact that it complains about a table already existing when you reset it to 246 shouldn’t happen as well: the table is only attempted to be created if it didn’t exist yet (EME even checks for the existence first). So maybe the user doesn’t even have the permission to see the current list of tables …
    In cpanel my DB user has these rights:

    ALTER	
    ALTER ROUTINE
    CREATE
    CREATE ROUTINE
    CREATE TEMPORARY TABLES
    CREATE VIEW
    DELETE
    DROP
    EVENT
    EXECUTE
    INDEX
    INSERT
    LOCK TABLES
    REFERENCES
    SELECT
    SHOW VIEW
    TRIGGER
    UPDATE

    Maybe you have disk full issues or file permision issues, and/or other db issues, but it is not possible for me to tell you that.

    Thanks Franky, I’ll speak with my hosting company about this.

    Plugin Author Franky

    (@liedekef)

    Also, I’d switch to a linux hosting provider. Running on windows is not something I’d recommend 🙂

    Ok yes, I’ve been told that by a friend as well 🙂

    I spoke with my hosting company and they checked the database and said that EME should have full rights to the database and it should work fine. They said that I should try uninstalling EME and reinstalling it. So that’s what I’ll do.

    Should I just uninstall EME from the WordPress plugins page? And will it also delete the tables and settings stored in the database? Is there any easy way to backup the EME settings or do I need to go through each tab manually and store each custom format that I’ve added?

    Thanks

    • This reply was modified 2 weeks, 3 days ago by timb111.
    Plugin Author Franky

    (@liedekef)

    Uinstalling will remove all EME data, also the options. While the EME tables can be backed up and imported again, the EME options reside in the wp options table. So if yu want to uninstall and reinstall, you should take a backup of your wp options table and restore it afterwards (or get all options that start with “eme”)

Viewing 9 replies - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.