Users running a non-download version of Vanilla (pulled from github), on branch release/2019.016 or master from the last 2 weeks should upgrade to release/2019.017 or latest master for security reasons. Downloaded official open sources releases are not affected.

Problem inserting blank Date to Database

I am trying to insert a null value into a date field in the database when a user does not fill out the form but instead i get a '' that is '{nothing}' value If i want the database to treat the '' value as null how would i do that?


I get the current error


{

  "Code": 256,

  "Exception": "Incorrect date value: '' for column 'EventCalendarDate' at row 1|Gdn_Database|Query|insert `GDN_Discussion` \n(`Body`, `CategoryID`, `InsertUserID`, `Name`, `Format`, `Announce`, `DateInserted`, `InsertIPAddress`, `DateLastComment`, `EventCalendarDate`) \nvalues (:Body, :CategoryID, :InsertUserID, :Name, :Format, :Announce, :DateInserted, :InsertIPAddress, :DateLastComment, :EventCalendarDate)",

  "Class": "Gdn_ErrorException",

  "StackTrace": "#0 [internal function]: gdn_ErrorHandler(256, 'Incorrect date ...', '/var/www/pokerf...', 421, Array)\n#1 /var/www/pokerforum.ca/library/database/class.database.php(421): trigger_error('Incorrect date ...', 256)\n#2 /var/www/pokerforum.ca/library/database/class.sqldriver.php(1707): Gdn_Database->query('insert `GDN_Dis...', Array, Array)\n#3 /var/www/pokerforum.ca/library/database/class.sqldriver.php(1133): Gdn_SQLDriver->query('insert `GDN_Dis...', 'insert')\n#4 /var/www/pokerforum.ca/applications/vanilla/models/class.discussionmodel.php(2171): Gdn_SQLDriver->insert('Discussion', Array)\n#5 /var/www/pokerforum.ca/applications/vanilla/controllers/class.postcontroller.php(323): DiscussionModel->save(Array)\n#6 /var/www/pokerforum.ca/library/core/class.dispatcher.php(872): PostController->discussion('test-2')\n#7 /var/www/pokerforum.ca/library/core/class.dispatcher.php(289): Gdn_Dispatcher->dispatchController(Object(Gdn_Request), Array)\n#8 /var/www/pokerforum.ca/index.php(29): Gdn_Dispatcher->dispatch()\n#9 {main}",

  "Data": {

    "isHomepage": false,

    "Category": {

      "CategoryID": 2,

      "ParentCategoryID": -1,

      "TreeLeft": 2,

      "TreeRight": 3,

      "Depth": 1,

      "CountCategories": 0,

      "CountDiscussions": 0,

      "CountAllDiscussions": 0,

      "CountComments": 0,

      "CountAllComments": 0,

      "LastCategoryID": 0,

      "DateMarkedRead": null,

      "AllowDiscussions": 1,

      "Archived": 0,

      "CanDelete": 1,

      "Name": "Test 2",

      "UrlCode": "test-2",

      "Description": "sdfgsdfg",

      "Sort": 2,

      "CssClass": "Category-test-2",

      "Photo": "",

      "PermissionCategoryID": -1,

      "PointsCategoryID": 0,

      "HideAllDiscussions": 0,

      "DisplayAs": "Discussions",

      "InsertUserID": 2,

      "UpdateUserID": 2,

      "DateInserted": "2020-03-22 16:45:40",

      "DateUpdated": "2020-03-22 16:45:40",

      "LastCommentID": null,

      "LastDiscussionID": null,

      "LastDateInserted": null,

      "AllowedDiscussionTypes": null,

      "DefaultDiscussionType": null,

            "Url": "http://pokerforum.main.nu/categories/test-2",

      "PhotoUrl": "",

      "PermsDiscussionsView": true,

      "PermsDiscussionsAdd": true,

      "PermsDiscussionsEdit": true,

      "PermsCommentsAdd": true

    },

    "Title": "New Discussion",

    "Type": "Discussion"

  }

}

Comments

  • NM on the submission validation it was checking to see if the User or the Category was not allowed (which it wasent) to have an EventCalendarDate and in this case you want to unset the variable and if it does not exist then the database will null out the field as that is the default value if nothing is presented. For some reason I just blanked out the variable incited of unsetting it

    so I change

    $args['FormPostValues']['EventCalendarDate'] = '';

    to

    unset($args['FormPostValues']['EventCalendarDate']);

Sign In or Register to comment.