Php 对非对象WordPress调用成员函数query()
我正在尝试将一个新表行插入到自定义wpdb表中。数据来自发布到脚本的表单 我在脚本开始时声明了global$wpdb,并将其插入到数据库中,但出于某种原因,它不喜欢查询函数,WordPress建议在codex中使用该函数Php 对非对象WordPress调用成员函数query(),php,mysql,wordpress,Php,Mysql,Wordpress,我正在尝试将一个新表行插入到自定义wpdb表中。数据来自发布到脚本的表单 我在脚本开始时声明了global$wpdb,并将其插入到数据库中,但出于某种原因,它不喜欢查询函数,WordPress建议在codex中使用该函数 // declare global wpdb global $wpdb; // set variables for posting to db $name = $_POST['name']; $email = $_POST['email']; // post to the
// declare global wpdb
global $wpdb;
// set variables for posting to db
$name = $_POST['name'];
$email = $_POST['email'];
// post to the db
$wpdb->query( $wpdb->prepare(
"
INSERT INTO $wpdb->entries
( name, email )
VALUES ( %s, %s )
",
$name,
$email
) );
关于它为什么会被窃听,你有什么想法吗?它是wordpress的一个特性,因此只有在之前定义过的情况下才能调用全局$wpdb 这意味着,在/wp content/。。。文件夹如果您使用具有wp特定功能的脚本,则在使用wordpress core编译之前,该脚本将无法工作 例如,一个主题模板或插件文件只需调用$wpdb就可以工作,但您的独立脚本不会工作,即使它位于插件或主题目录中 简单的解决方案是在运行该脚本之前包含/wp-config.php文件。只要写下:
include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );
在调用$wpdb之前。它适合我。我已使用
<?php
/**
* Created by PhpStorm.
* User: manisha
* Date: 05-11-2015
* Time: 15:30
*/
include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );
$email = $_REQUEST['email'];
global $wpdb;
$result=$wpdb->query(
$wpdb->prepare(
"
DELETE FROM wp_addemail
WHERE email = %s
",
$email
)
);
this things is worked for me
include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );
这段代码实际上我已经使用Ajax在自定义数据库表中提交了表单数据,但我遇到了一个致命错误。。现在致命错误已经解决。var_dump$wpdb说了什么?这个文件包含在什么地方还是包含什么。它应该与$wpdb实际为所有objective的文件相关。如果在错误发生之前I var_dump,它只返回null,因此它不是实际实例。Wordpress应该有一个配置文件,他们在其中声明$wpdb=new someObject…,您是否包括此文件,您的文件是否包含在Wordpress的一些内部文件中?因为如果它是一个独立的文件,什么也不会发生,$wpdb来自nowhereAh!包括wp-load.php,让它连接到数据库,现在var_转储显示连接。谢谢我想这也行。正如我在包括wp-load.php在内的评论中提到的,我也做到了这一点: