【问题标题】:Can't update data in mysql database (wordpress)无法更新mysql数据库中的数据(wordpress)
【发布时间】:2019-04-27 04:37:25
【问题描述】:

我正在尝试使用“选择”值从 WP 网站页面更新我的数据库中的数据。

这就是我的“选择”的样子:

<select onchange="getState(this.value)" name="state_selector1" id="state_selector1">

这是我的 JS 脚本:

function getState(ns) {
    jQuery.ajax({
        url: "/getVal.php",
        type: "GET",
        data: "newState=" + ns,
        success: function(output) {
            alert("Статус статьи изменен. " + output);
        }, error: function() {
          alert('Something went wrong.');
        }
    });
};

还有getVal.php:

<?php

    global $wpdb;

    $newState = $_GET['newState'];
    $intNewState = (int)$newState;
    var_dump($intNewState);
    $stateUpdate = $wpdb->update( 'application',
        array( 'state' => $intNewState ),
        array( 'id' => 1 )
    );

?>

每次我更改“选择”的值时都会收到 500 内部服务器错误。 JS 和 PHP 一样可以毫无问题地获取选择值,但是当我在 getVal.php 中添加“$wpdb->update”或“$wpdb->query”时出现错误。

【问题讨论】:

标签: php wordpress


【解决方案1】:

可能你没有 $wpdb 对象。

这是您的完整文件 getVal.php 吗?你在document_root中有它吗? 不要使用这种方法。这是错误的。

使用 Wordpress AJAX 方法 - 在此处获取更多信息:https://codex.wordpress.org/AJAX_in_Plugins

【讨论】:

  • 不确定 $wpdb 对象,因为它在不同的 php 文件中工作。是的,这是我完整的 getVal.php。它不在 document_root 上,我只是没有在此处发布类似的内容,但例如,如果我在此文件中使用“echo”,它就可以正常工作。我会尽量使用你的建议。
  • 虽然链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
【解决方案2】:

我通过使用不同的方式连接到数据库来修复它。 是否使用此代码:

require_once("wp-load.php");
$link = new wpdb("***", "***", "***", "***");

其他一切都保持不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2021-08-31
    • 2015-07-23
    • 2014-11-10
    • 2013-02-06
    相关资源
    最近更新 更多