gpt4 book ai didi

database - Wordpress 插件通过 AJAX 调用数据库结果

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:50 25 4
gpt4 key购买 nike

我编写了一个 Wordpress 插件,它可以为页面生成内容,然后尝试通过 jQuery.load 调用 Update.php 来刷新结果。例如:

插件生成此内容:

global $wpdb;
$sql = "SELECT * FROM table ORDER BY id;";
$results = $wpdb->get_results($sql);
<div id="content">Database Results Here Via Loop</div>

jQuery 调用 Update.php:

<script type="text/javascript">
$(function() {
var refresh = setInterval(function() {
$("#content").load("Update.php");
}, 5000);
});

Update.php 包含:

<?php
function update_page() {
global $wpdb;
$sql = "SELECT * FROM table ORDER BY id;";
$results = $wpdb->get_results($sql);
echo "Parsed results go here";
}
update_page();
?>

5 秒后,这会导致主页上出现“ fatal error :调用非对象上的成员函数 get_results()”。

如果我简单地让 Update.php 返回类似 rand() 的东西,那么它工作正常并用随机数更新 div。但是,如果我尝试在 Update.php 文件(例如 require_once("wp-blog-header.php");)中包含定义所有 Wordpress 类(即 $wpdb)的 header ,那么 AJAX 就会完全停止工作,甚至不会返回 rand(),但它防止上述 fatal error 的发生。

我完全迷路了。任何帮助或只是为我指明正确的方向将不胜感激。提前谢谢您,好心的先生们。

最佳答案

您正在使用 ajax 调用 update.php 文件,因此 wordpress 无法加载其其他文件,因此它找不到 $wpdb 对象定义,因此您需要做的是require_once wp-config.php 和 wp-includes/wp-db.php 文件

并创建一个对象为 $wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);

在update_page()函数之前;

关于database - Wordpress 插件通过 AJAX 调用数据库结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5410806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com