【问题标题】:PHP: Fatal error: Call to a member function insert() on a non-objectPHP:致命错误:在非对象上调用成员函数 insert()
【发布时间】:2016-02-12 18:20:46
【问题描述】:

使用以下函数时出现错误:调用非对象上的成员函数 insert()。 请帮忙!

<?php 

$hostname = "dd";
$username = "cc";
$password = "aa";
$dbName = "bb";
MYSQL_CONNECT($hostname, $username, $password) OR DIE("Unable to connect to database");
@mysql_select_db("$dbName") or die( "Unable to select database");

subscribe($email, $firstname, $lastname, $company);

function subscribe($email, $first, $last, $company)
{
             global $wpdb;  
             $wpdb -> insert('aca11052015_subscribers', array(
            'First Name' => $first,
            'Last Name' => $last,
            'Company' => $company,
            'Email' => $email,
            'Date' => date("Y-m-d H:i:s")
        ));    
}

【问题讨论】:

  • 所以我猜这是一个 wordpress 主题/插件?这段代码保存在哪里,如何调用?
  • 错误意味着 $wpdb 不是对象。它可能没有正确初始化,可能是由于数据库连接的凭据错误。或者数据库服务器可能已关闭。
  • 史蒂夫,我目前正在创建一个 php 模板,它接受 ajax 帖子并将它们插入我们的数据库。
  • Alex,我认为我们的数据库连接正确。我不确定我是否正确初始化它......
  • $wpdb 全局尚未启动,因为您正在运行 ajax - 如果您需要,则在包含该代码的文件中 require_once('wp-load.php');使用该文件的正确路径(它应该在您网站的根目录中),事情应该开始工作

标签: php database global wordpress


【解决方案1】:

$wpdb 全局尚未启动,因为您正在通过 ajax 运行并独立调用该文件。

如果您添加,则在包含该代码的文件中:

require_once('wp-load.php'); 

确保它指向该文件的正确路径(它应该在您网站的根目录中),一切都应该开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多