「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
メールフォームプラグインのインストール時にアップグレードに失敗した時の対処
拙作のメールフォームプラグインをインストールする際に、まれにデータベースのアップグレードに失敗するサーバーがあります。
はっきりとした原因はつかんでいませんが、MySQLのバージョンや、Perlのデータベース関係のモジュールのバージョンの関係ではないかと思います。
アップグレードに失敗した場合でも、手動でテーブルを追加すれば、メールフォームプラグインが動作する場合があります。
その方法を紹介します。
1.注意点
今回紹介する方法は、phpMyAdminを使ってデータベースを直接に操作します。
そのため、操作に失敗するとデータベースが壊れることもあり得ます。
作業の前に、あらかじめデータベースをバックアップしておいて、元に戻せるようにしておいてください。
2.中途半端なテーブルを削除
アップグレードの際に、中途半端にテーブルが作られている可能性があります。
MTのデータベースに「mt_mailform_setting」というテーブルがあれば、そのテーブルを削除します。
3.テーブルの作成
次に、MTのデータベースを操作できる状態にしてから、以下のSQLを実行して、テーブルを作成します。
CREATE TABLE `mt_mailform_setting` ( `mailform_setting_id` int(11) NOT NULL AUTO_INCREMENT, `mailform_setting_author_id` int(11) DEFAULT NULL, `mailform_setting_auto_reply` tinyint(4) DEFAULT NULL, `mailform_setting_blog_id` int(11) NOT NULL, `mailform_setting_body_template_id` int(11) DEFAULT NULL, `mailform_setting_class` varchar(255) DEFAULT 'mailform_setting', `mailform_setting_common_template_id` int(11) DEFAULT NULL, `mailform_setting_description` mediumtext, `mailform_setting_email_bcc` mediumtext, `mailform_setting_email_cc` mediumtext, `mailform_setting_email_confirm` tinyint(4) DEFAULT NULL, `mailform_setting_email_from` varchar(255) DEFAULT NULL, `mailform_setting_email_from_type` int(11) DEFAULT NULL, `mailform_setting_email_to` varchar(255) DEFAULT NULL, `mailform_setting_email_to2` mediumtext, `mailform_setting_error_check_fields` mediumtext, `mailform_setting_error_check_in_preview` tinyint(4) DEFAULT NULL, `mailform_setting_error_msg` mediumtext, `mailform_setting_error_specific_check` mediumtext, `mailform_setting_error_template_id` int(11) DEFAULT NULL, `mailform_setting_form_template_id` int(11) DEFAULT NULL, `mailform_setting_mail_subject` varchar(255) DEFAULT NULL, `mailform_setting_must_check_fields` mediumtext, `mailform_setting_post_template_id` int(11) DEFAULT NULL, `mailform_setting_preview_template_id` int(11) DEFAULT NULL, `mailform_setting_reply_subject` varchar(255) DEFAULT NULL, `mailform_setting_reply_template_id` int(11) DEFAULT NULL, `mailform_setting_rmail_from` varchar(255) DEFAULT NULL, `mailform_setting_title` varchar(255) DEFAULT NULL, `mailform_setting_use_ajax` tinyint(4) DEFAULT NULL, `mailform_setting_wait_msg` mediumtext, PRIMARY KEY (`mailform_setting_id`), KEY `mt_mailform_setting_class` (`mailform_setting_class`), KEY `mt_mailform_setting_title` (`mailform_setting_title`), KEY `mt_mailform_setting_blog_id` (`mailform_setting_blog_id`) );
4.mt_configテーブルの書き換え
次に、「mt_config」というテーブルを書き換えます。
mt_configテーブルには、レコードが1つだけあるはずです。
そのレコードを編集する状態にして、「config_data」というフィールドの値を調べます。
その値の中に以下の部分がなければ、以下の部分をconfig_dataフィールドの最後に追加して、レコードを保存しなおします。
PluginSchemaVersion mailform=1.01
5.テーブルの接頭語を変えている場合
データベースを複数作れないサーバーに、複数のMTをインストールするために、テーブル名の先頭の接頭語を変えている場合もあると思います。
この場合、ここまでの話で出てきた「mt_」の接頭語を、ご自分で変えた接頭語にすべて置き換えてください。
ただし、テーブル名の接頭語を変えることは、MTの動作保証外のことですので、プラグインの動作も保証できません。
この点はご容赦ください。