php - 在非对象 WordPress 上调用成员函数 query()

标签 php mysql wordpress

我正在尝试将一个新的表格行插入到自定义 wpdb 表格中。数据来自发布到脚本的表单。

我在脚本的开头声明了 global $wpdb,并插入到数据库中,但出于某种原因,它不喜欢 WordPress 建议在法典。

// 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 核心编译之前将无法工作。

因此,例如,主题模板或插件文件可以通过调用 $wpdb 来工作,但您的独立脚本不会,即使它位于插件或主题目录中也是如此。

简单的解决方案是在运行该脚本之前包含/wp-config.php 文件。只写:

include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );

在调用 $wpdb 之前。它对我有用。

关于php - 在非对象 WordPress 上调用成员函数 query(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759528/

相关文章:

php - 使用ajax和php按价格排序

php - zend Framework 2 Db 选择列分组

php - 可以链接比较运算符吗?

php - 当我尝试在 symfony2 中获取管理页面时出现此错误

mysql - 表达此 SQL 查询的更好/替代方式

wordpress - WordPress的。 Woocommerce。 Action Hook 在添加到购物车之前

mysql - SQL,根据引用它们的第三个表从两个表中选择

mysql - 我不断收到错误消息 "missing Keyword"

php - 你如何在 wordpress 插件中使用 curl?

php - 将在一个函数中创建的 PHP 变量传递给另一个函数