如何使用wordpress wpdb类来插入数据

时间:2012-11-16 02:30:15

标签: php wordpress

我是wordpress的新手我尝试创建表并向该表插入数据。所以在wordpress数据库中我创建了一个名为'album'的表,然后我创建了一个名为'my-codes'的目录(在根目录/同一级别,'wp-admin','wp-content,'wp-includes'目录)

在我创建insert.php的目录中,然后我添加了以下代码

<?php       
global $wpdb;
$wpdb->insert($wpdb->album , array("ID"=>1, "Name"=>'something'), array("%d", "%s"));

 ?>

但它给出了这个错误Fatal error: Call to a member function insert() on a non-object in C:\wamp\www\wordpress\my-codes\insert.php我犯了什么错误,请帮助我。

3 个答案:

答案 0 :(得分:1)

您必须在脚本中加载Wordpress文件,以便您可以访问Wordpress“$wpdb对象:

require_once( '../wp-load.php' );

这将加载所有Wordpress ,甚至是您不需要的功能。如果您只想加载数据库部分read this article


更新 - insert方法的第一个参数应该是表格的名称:

$wpdb->insert(
    'album',
     array("ID"=>1, "Name"=>'something'),
     array("%d", "%s")
);

答案 1 :(得分:0)

require (dirname(dirname(__FILE__)) . '/wp-blog-header.php');
require (ABSPATH . WPINC . '/compat.php');
require (ABSPATH . WPINC . '/functions.php');
require (ABSPATH . WPINC . '/classes.php');

require_wp_db();
global $wpdb; // Look look! Over here! line 270 in wp-settings.php

if ( !empty($wpdb->error) )
        dead_db();

 //Execute your query here

答案 2 :(得分:0)

我建议使用WordPress Options API而不是创建自定义表格,除非选项不符合您的需求。另外,将所有代码放在主题functions.php中。这样,您就不需要在外部加载任何其他WordPress文件。如果您的代码位于functions.php。

,它们已经自动为您加载

以下是如何使用选项(取自上面链接的WP Codex文章)在数据库中存储数据的快速示例:

// Create an option to the database
add_option( $option, $value = , $deprecated = , $autoload = 'yes' );

// Removes option by name.
delete_option( $option );

// Fetch a saved option
get_option( $option, $default = false );

// Update the value of an option that was already added.
update_option( $option, $newvalue );

选项更容易实现,并且通常比直接数据库访问更不容易出错。 :)