我开始了插件开发,并随后于WordPress的法典网站的教程。 我现在坚持-我有一个名为“wp_imlisteningto”数据库,其中wp_
使用插入:
$table_name = $wpdb->prefix . "imlisteningto";
当插件被激活。
该数据库本身有三列,设置当插件被激活:
$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'];
?>
工作正常 - 我得到的专辑和艺术家,我把形式。 很明显的东西插入时的数据(新行)到数据库中,我做错了。
任何想法,以什么可能呢?
UPDATE
好了,如果我更新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
没有工作,除非我要求无论是wp-config
或wp-load.php
。 如果包括wp-load.php
, $wpdb
获得价值,一切都很好。