0

ハイ、

このコードはローカルで動作しましたが、テスト サーバーにアップロードするとすぐにバグが発生しました。wordpress プラグインは初めてですが、php の仕組みは知っています。

次のエラーが表示されます。

Fatal error: Cannot access empty property

そして、これはエラーを与える行です (最後の行):

global $wpdb;
$wpdb -> show_errors();
$dbPrefixHere = $wpdb -> $prefix;

私はここで何か間違っていますか?または、db プレフィックスを取得するためのより良い/より良い方法はありますか?

編集 1 よし、私はそれを機能させましたが、今は db テーブルが作成されていません...

私はそのためにコードのこの部分を使用しています:

$sQueryCheckProjectDB = "CREATE TABLE ".$dbPrefixHere."automaticthesiswriter_projects (
                          projectID int(11) NOT NULL AUTO_INCREMENT,
                          userID int(11) NOT NULL,
                          shareID int(11) NOT NULL,
                          projectName mediumtext NOT NULL,
                          projectDescription mediumtext NOT NULL,
                          PRIMARY KEY  (projectID)
                        ) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
dbDelta($sqlUseOnPageSQLCreate);

しかし、テーブルは作成されておらず、エラーも表示されていません...

4

1 に答える 1

1

変更してみてください:

$dbPrefixHere = $wpdb -> $prefix;

に:

$dbPrefixHere = $wpdb->prefix;

追加の回答: (間違った変数が使用されていますか?)

$sQueryCheckProjectDB = "CREATE TABLE ".$dbPrefixHere."automaticthesiswriter_projects (
                          projectID int(11) NOT NULL AUTO_INCREMENT,
                          userID int(11) NOT NULL,
                          shareID int(11) NOT NULL,
                          projectName mediumtext NOT NULL,
                          projectDescription mediumtext NOT NULL,
                          PRIMARY KEY  (projectID)
                        ) ENGINE=InnoDB DEFAULT CHARSET=latin1;";
dbDelta($sQueryCheckProjectDB);

参照: http://codex.wordpress.org/Creating_Tables_with_Plugins

于 2012-11-10T07:36:21.163 に答える