Wordpress 4.2.2更新 - 失败的wpdb->插入

时间:2015-05-07 16:27:01

标签: mysql wordpress wordpress-plugin

上下文

我一直在创建一个新的wordpress博客作为个人网站。部分原因是,我有一个自定义的联系表格,人们会在其中提供详细信息以便与我取得联系。它一直工作到早上,之后我因安全原因更新到4.2.2v。

问题

更新后,表单无法将任何信息保存到数据库中。 $wpdb->insert_id返回0.查询是相同的,页面是相同的,一切都是一样的。唯一的变化是我从4.2.1v升级到4.2.2v。

最新更新是否有问题,或者我必须在word press manual update之后再执行更多步骤?

调试完成......

我已确保更新数据库版本。它显示31535.使用$wpdb->lastquery$wpdb->print_error()进行调试时,我得到了

WordPress database error: []
SHOW FULL COLUMNS FROM `wp_tst_tbl_contacts`

我无法理解这里有什么问题。如果我使用相同的用户wp用户凭据运行相同的插入查询以及上面的show full columns命令行,它可以完美地运行。

注意:如果还有其他信息,请询问。

2 个答案:

答案 0 :(得分:15)

我发现问题的原因。这是由于列宽限制。

我有一个VARCHAR(9)列,我发送的数据是16个字符长度。 4.2.2中的新更改获取表元并对数据进行裁剪,使其适合DB中定义的列大小。它还比较了作物前和作物后的数据。如果他们不匹配,那就失败了。

问题是,它无声地失败而没有抛出错误。我通过调试wpincludes / wp-db.php文件找到了这个。

请检查您的色谱柱限制和您发送的色谱柱数据长度。

一旦我增加了列宽(因为数据肯定会超过9个字符),问题就解决了。

答案 1 :(得分:2)

我遇到了同样的问题,结果是一些未转义的值被从csv导入函数推送到数据库中。

我在适当情况下应用适当的esc_url()和/或esc_attr()和/或esc_html()来清理插入前的值,然后查询成功运行。