我是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
我犯了什么错误,请帮助我。
答案 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 );
选项更容易实现,并且通常比直接数据库访问更不容易出错。 :)