Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对非对象WordPress调用成员函数query()_Php_Mysql_Wordpress - Fatal编程技术网

Php 对非对象WordPress调用成员函数query()

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

我正在尝试将一个新表行插入到自定义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 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在内的评论中提到的,我也做到了这一点: