Drupal错误PDOException SQLState [22007]'无效的日期时间格式'在MoneySuite PayPerView中

时间:2016-10-30 09:47:53

标签: drupal pay-per-view

点击'覆盖设置&#39>在按次付费内容节点(使用Drupal MoneySuite模块)上输入一个金额/类型然后节点它崩溃与此错误,虽然我尝试了许多版本的价格(例如1或1.00)和日期(例如2或2天)。我尝试在字段的设置中使用完整的html,过滤的html和纯文本。 Stackexhange的一个答案暗示这是一个ut8问题,但我不知道这对于如何解决它意味着什么?有小费吗?

错误是:

     PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect     integer value: 'full_html' for column 'protected_content_message_format' at row 1: INSERT INTO {ms_ppv_price} (vid, nid, price, expiration_string, allow_multiple, protected_content_message, protected_content_message_format, stock, out_of_stock_message) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8); Array ( [:db_insert_placeholder_0] => 96 [:db_insert_placeholder_1] => 96 [:db_insert_placeholder_2] => 3 [:db_insert_placeholder_3] => 3 days [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => This is a premium film- pay per view only. Get access [ms_ppv:price] to view for [ms_ppv:expirationLength] : [ms_ppv:addToCartLink] [ms_ppv:nodeTeaser] [:db_insert_placeholder_6] => full_html [:db_insert_placeholder_7] => 0 [:db_insert_placeholder_8] => ) in ms_ppv_insert_node_price() (line 774 of /home/cineafzh/public_html/sites/all/modules/moneysuite/ms_ppv/ms_ppv.module).

1 个答案:

答案 0 :(得分:1)

看起来MoneySuite模块错误地创建了数据库表。

您的错误消息可以准确地解释出现了什么问题。

列'protected_content_message_format'被定义为数据库中的日期时间列。模块尝试存储在其中的值是'full_html',这是一个字符串。它未通过验证并抛出异常。

一种解决方法是编辑数据库并将'protected_content_message_format'的列类型更改为字符串,而不是datetime。

我无法保证在不查看代码的情况下不会引入其他不良行为,但它肯定会解决此特定错误。