私はプラグインの開発を始めており、WordPressCodexサイトのチュートリアルに従っています。私は今立ち往生しています-私は「wp_imlisteningto」と呼ばれるデータベースを持っています、そこではwp_
以下を使用して挿入されました:
$table_name = $wpdb->prefix . "imlisteningto";
プラグインがアクティブ化されたとき。
データベース自体には3つの列があり、プラグインがアクティブ化されたときに設定されます。
$sql = "CREATE TABLE $table_name (
id mediumint(9) AUTO_INCREMENT,
album VARCHAR(50),
artist VARCHAR(50),
PRIMARY KEY (id)
);";
phpフォームからこのデータベースに(新しい行を作成して)データを挿入しようとしています。
WordPress管理者内で、非常に単純な形式の新しいページを作成します。
<form action="/wp-content/plugins/listeningto/formhtml.php" method="post">
Album: <input type="text" name="album" />
Artist: <input type="text" name="artist" />
<input type="submit">
</form>
あなたが見ることができるようformhtml.php
に、それは次のとおりです。
<?php
global $wpdb;
$wpdb->insert( $table_name, array( 'album' => $_POST['album'], 'artist' => $_POST['artist'] ), array( '$s', '$s' ) );
?>
フォームを送信するとError 500.0
、Worpdressでプラグインを実行するIIS7.0
と、"Page Not Found"
が実行され、を実行する別のWebサーバーで実行するとが表示されますapache
。
次のように変更formhtml.php
した場合:
<?php
echo $_POST['album'];
echo $_POST['artist'];
?>
正常に動作します-フォームに入れたアルバムとアーティストを取得します。明らかに、データベースに(新しい行に)データを挿入するときに私が間違っていることがあります。
それが何であるかについて何か考えはありますか?
アップデート
さて、これで更新するformhtml.php
と:
<?php
require_once('../../../wp-config.php');
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert( $table_name, array( 'album' => $_POST['album'], 'artist' => $_POST['artist'] ), array( '$s', '$s' ) );
?>
エラーメッセージは表示されなくなりましたが、データはデータベースに入れられません。
更新2
これは私のために働いた:
<?php
require_once('../../../wp-config.php');
global $wpdb;
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert( $table_name, array( 'album' => $_POST['album'], 'artist' => $_POST['artist'] ) );
?>
これがしたように:
<?php
require_once('../../../wp-load.php');
global $wpdb;
$table_name = $wpdb->prefix . "imlisteningto";
$wpdb->insert( $table_name, array( 'album' => $_POST['album'], 'artist' => $_POST['artist'] ) );
?>
したがって、またはのいずれか$wpdb
が必要でない限り、何らかの理由で機能しませんでした。includeの場合、値を取得し、すべてが順調です。wp-config
wp-load.php
wp-load.php
$wpdb