为什么我不能将数据(行和值)添加到我的wp数据库中?

时间:2014-01-07 12:56:57

标签: database wordpress plugins

我想在我的Wordpress数据库中添加一些数据。通过在我的插件主文件中使用此代码已经创建了表:

function create_schedule_table() {
   global $wpdb;
   $table_name = $wpdb->prefix . "my_tablename"; 
   if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
           $sql = "CREATE TABLE $table_name (
           id mediumint(9) NOT NULL AUTO_INCREMENT,
           time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
           name tinytext NOT NULL,
           text text NOT NULL,
           url VARCHAR(55) DEFAULT '' NOT NULL,
           UNIQUE KEY id (id)
           );";

           require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
           dbDelta( $sql );
   }
}

完美无缺。但现在用户应该能够通过单击按钮来保存数据。通过单击按钮,我的插件目录中的辅助PHP脚本将被执行。在该文件中,我启用wordpress函数:require_once("../../../wp-load.php");并使用global $wpdb;初始化wpdb变量

我尝试用以下内容将某些东西保存到我的桌子上:

$table_name = $wpdb->prefix . "my_tablename";
$test='toast';
$wpdb->insert('wp_my_tablename',
    array(
        'monday'=>$test        
    ),
    array(
        '%s'
    )
);

但遗憾的是没有任何变化。我试图调试或得到一个错误但到目前为止找不到任何东西。这样:

$result = $wpdb->get_results("SELECT * FROM wp_my_tablename");
var_dump($result);

刚刚返回一个空数组。

exit( var_dump( $wpdb->last_query ) );

返回:

string(60) "INSERT INTO `wp_my_tablename` (`monday`) VALUES ('toast')"

那么错误在哪里?我怎么能让它起作用?

1 个答案:

答案 0 :(得分:1)

首先关闭Don't include wp-load但使用普通ajax call 其次,您似乎插入名为星期一的字段中没有此类字段。你只做了:

  • ID
  • 时间
  • 名称
  • 文本
  • URL

因此插入星期一是行不通的。