Php 使用WordPress$wpdb将数据插入WordPress数据库的表中
我开始了插件开发,并遵循了WordPress Codex网站上的教程。我现在被卡住了-我有一个名为“wp_imlistengto”的数据库,其中Php 使用WordPress$wpdb将数据插入WordPress数据库的表中,php,wordpress,forms,Php,Wordpress,Forms,我开始了插件开发,并遵循了WordPress Codex网站上的教程。我现在被卡住了-我有一个名为“wp_imlistengto”的数据库,其中wp_是通过以下方式插入的: $table_name = $wpdb->prefix . "imlisteningto"; 当插件被激活时 数据库本身有三列,在插件激活时设置: $sql = "CREATE TABLE $table_name ( id mediumint(9) AUTO_INCREMENT, album VARCHAR(50),
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>
当我提交表单时,当在IIS7.0
上的WorpAddress中运行插件时,我会收到错误500.0
,当在另一台运行apache
的web服务器上运行插件时,会收到“未找到页面”
如果我将formhtml.php
更改为:
<?php
echo $_POST['album'];
echo $_POST['artist'];
?>
我不再收到错误消息,但数据仍然没有放入数据库
更新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
。如果includewp load.php
,$wpdb
获取值,一切正常。试试这个
<?php
global $wpdb;
$wpdb->insert( $table_name, array( 'album' => "$_POST['album']", 'artist' => "$_POST['artist']" ) );
?>
包括
require_once('../../../wp-config.php');
为我工作我认为您的sql字符串中有两个错误 我想应该是
$table\u name
变量应该连接在一起
$sql = "CREATE TABLE" . $table_name . "(
id mediumint(9) AUTO_INCREMENT,
album VARCHAR(50),
artist VARCHAR(50),
PRIMARY KEY (id)
)";
并删除
代码>在最后一行。您现在可能已经解决了这个问题,但这里没有人解决它。示例代码的第3个参数(第2个数组)中有“$s”,但该参数应为“%s”,因为它用于值格式设置。WP Codex说,[这个$wpdb->insert()的格式参数是可选的。Hi Ajay谢谢你的回复-不,这也不起作用。但是,我已经用对我有用的东西更新了我的帖子。@MattyRasker有用吗?有关更多信息,请访问一次(ABSPATH。'WP settings.php'));也应该可以工作。ABSPATH是defined@wp-load.php这是错误的,您将得到:CREATE TABLEwp\u imlisteningto
注意到,但是创建表不是问题,这很好。
<?php
global $wpdb;
$wpdb->insert($table_name , array('chart_name' => "Line Chart" ,'chart_type' => "trends",'status' => 0));
?>
require_once('../../../wp-config.php');
$sql = "CREATE TABLE" . $table_name . "(
id mediumint(9) AUTO_INCREMENT,
album VARCHAR(50),
artist VARCHAR(50),
PRIMARY KEY (id)
)";