免責事項
この質問を締めくくる前に、私はすでに wordpress.se.com に投稿しており、回答がないまま報奨金を提供したことを理解しておいてください。これにより、問題は WordPress 自体に関連しているのではなく、まだ理解していない php/mysql の癖である可能性があると思いました。php/mysql の専門家が何がうまくいかなかったのかを理解できるように、以下に十分な情報を提供できたことを願っています。
私が抱えている問題は、更新ステートメント
UPDATE
`s_6_posts`
SET
`post_author` = 9,
`post_date` = '2012-04-11 20:40:05',
`post_date_gmt` = '2012-04-11 20:40:05',
`post_content` = '\n\n\n<div class=\"WordSection1\">\n\n<p class=\"MsoNormal\" style=\"margin-bottom:0in;margin-bottom:.0001pt;line-height:normal\"><b><span style=\'font-size:9.0pt;font-family:\"ArialNarrow\",\"sans-serif\";color:red\'>This is a new document</span></b></p>\n\n<p class=\"MsoNormal\" style=\"margin-bottom:0in;margin-bottom:.0001pt;line-height:normal\"><b><span style=\'font-size:9.0pt;font-family:\"ArialNarrow\",\"sans-serif\";color:red\'> </span></b></p>\n\n<p class=\"MsoNormal\" style=\"margin-bottom:0in;margin-bottom:.0001pt;line-height:normal\"><b><span style=\'font-size:9.0pt;font-family:\"ArialNarrow\",\"sans-serif\";color:red\'>Test Test Test</span></b></p>\n\n</div>\n\n\n',
`post_content_filtered` = '',
`post_title` = '',
`post_excerpt` = '',
`post_status` = 'draft',
`post_type` = 'post',
`comment_status` = 'open',
`ping_status` = 'open',
`post_password` = '',
`post_name` = '',
`to_ping` = '',
`pinged` = '',
`post_modified` = '2012-04-11 20:40:05',
`post_modified_gmt` = '2012-04-11 20:40:05',
`post_parent` = 0,
`menu_order` = 0,
`guid` = 'https://qa.citivelocity.com/cvauthor/equitywire/?p=230'
WHERE
`ID` = 230
php(WordPressのコードベース)で実行すると途切れてしまいました。post_content フィールドのデータベースでの結果は次のとおりです。
<div class="WordSection1">
<p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"><b><span style='font-size:9.0pt;font-family:"ArialNarrow","sans-serif";color:red'>This is a new document</span></b></p>
<p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"><b><span style='font-size:9.0pt;font-family:"ArialNarrow","sans-serif";color:red'>
問題
ここで起こっていることは
<span style='font-size:9.0pt;font-family:"ArialNarrow","sans-serif";
color:red'> </span>
ブロック、<span>
タグ間のスペース以降はすべて切り捨てられます。他のデータにスペースが含まれている場合でも、この問題を一貫して再現できました。データの長さに関係なく、カットオフは常にスペースで発生するため、フィールドのサイズ制限ではないようです。
この SQL ステートメントは WordPress のデバッグ ログに出力されており、実際に実行されているステートメントであると確信するあらゆる理由があります。MySQL クライアント (Aqua Data Studio) を介して同じステートメントを実行しましたが、カットオフは発生しませんでした。
CentO で php 5.3 を使用して Mysql 5.0.77 を実行しています。テーブルは MyISAM で、照合は utf8_general_ci です。
投稿テーブル スキーマ:
CREATE TABLE `s_posts` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_author` bigint(20) unsigned NOT NULL DEFAULT '0',
`post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content` longtext NOT NULL,
`post_title` text NOT NULL,
`post_excerpt` text NOT NULL,
`post_status` varchar(20) NOT NULL DEFAULT 'publish',
`comment_status` varchar(20) NOT NULL DEFAULT 'open',
`ping_status` varchar(20) NOT NULL DEFAULT 'open',
`post_password` varchar(20) NOT NULL DEFAULT '',
`post_name` varchar(200) NOT NULL DEFAULT '',
`to_ping` text NOT NULL,
`pinged` text NOT NULL,
`post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content_filtered` text NOT NULL,
`post_parent` bigint(20) unsigned NOT NULL DEFAULT '0',
`guid` varchar(255) NOT NULL DEFAULT '',
`menu_order` int(11) NOT NULL DEFAULT '0',
`post_type` varchar(20) NOT NULL DEFAULT 'post',
`post_mime_type` varchar(100) NOT NULL DEFAULT '',
`comment_count` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
KEY `post_name` (`post_name`),
KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`),
KEY `post_parent` (`post_parent`),
KEY `post_author` (`post_author`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;