NP_znBackupNeoでWarningが出る

久々の記事になります。

Nucleus CMSのプラグインに、データベースのバックアップを取ってくれるものがある。

佐藤(な)さんが作ってくださった、NP_znBackupNP_znBackupNeoとである。

これらのプラグインはいずれも、サイトのいずれかのページへのアクセスがトリガーになり、前のバックアップからあらかじめ設定しておいた時間経過すると自動的にバックアップを作成してくれる。バックアップデータをメールで飛ばしてくれるので、もしものときのことを考えると、ありがたいプラグインである。

私は、サイトの更新状況に応じて24時間ごとあるいは48時間ごとに設定し、アクセスの少ない夜中にバックアップを取るようにしている。

ところで、このプラグインを入れると、Warning(警告)が表示されることがある。
それも、バックアップを自動で作成したときに限り、なので、なかなかわかりにくい。
警告の内容は、以下である。サイトの一番下に表示される。

Warning: mysqli_fetch_fields() expects parameter 1 to be mysqli_result, resource given in /nucleus_root_path/nucleus/plugins/znbackupneo/DBBACKUP.php on line 126

(上記を24回繰り返し)

Warning: array_merge() [function.array-merge]: Argument #2 is not an array in /nucleus_root_path/nucleus/plugins/NP_znBackupNeo.php on line 325

Warning: Invalid argument supplied for foreach() in /nucleus_root_path/nucleus/plugins/NP_znBackupNeo.php on line 331


最初のエラーが、PHPのmysqli_fetch_fields()の引数がおかしい(たりない?)ということらしい。そこでソースを見たところ、mysqli_fetch_fields()という関数があるかどうかで条件わけがされているので、その部分を削除すればいいわけです。

NP_znBackupNeoの場合、znbackupneo/BACKUP.phpの124行目から143行目を、以下のように修正します。

修正前
if (function_exists('mysqli_fetch_fields') ) {

$fields = mysqli_fetch_fields($result);
for ($j = 0; $j < $num_fields; $j++)
//
//$fields[$j] = $fields[$j]->name;
$fields[$j] = '`' . $fields[$j]->name . '`';
//


} else {

$fields = array();
for ($j = 0; $j < $num_fields; $j++) {
//
//$fields[] = mysql_field_name($result, $j);
$fields[] = '`' . mysql_field_name($result, $j) . '`';
//

}

}


修正後
// if (function_exists('mysqli_fetch_fields') ) {

// $fields = mysqli_fetch_fields($result);
// for ($j = 0; $j < $num_fields; $j++)
// //
// //$fields[$j] = $fields[$j]->name;
// $fields[$j] = '`' . $fields[$j]->name . '`';
// //


// } else {

$fields = array();
for ($j = 0; $j < $num_fields; $j++) {
//
//$fields[] = mysql_field_name($result, $j);
$fields[] = '`' . mysql_field_name($result, $j) . '`';
//

}

// }


これで、Warning(警告)も出なくなったみたいです。

もっとスマートな方法もありそうですが、私にはこれが精一杯です。
2009年04月17日(金)16:23:16
カテゴリー:Why Is the Sky Blue? » Nucleus
タグ:

コメント

この記事のコメントはありません。









トラックバック

このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

サイト内検索


カレンダー

2010-03
1234567
891011121314
15161718192021
22232425262728
293031    

ログイン






powered by

  • Powered by Nucleus CMS