使用PHP表单更新MySQL数据库中的用户语言字段时出错

gijlo24d  于 2023-02-21  发布在  PHP
关注(0)|答案(1)|浏览(180)

我寻求您的帮助是因为我在使用网页上的PHP表单更新MySQL数据库中的用户语言字段时遇到问题。PHP脚本所有者具有该数据库的读写权限。
尽管收到了来自

if ( update_user_meta( $user_id, 'LanguagesUser', $LanguagesUser )

当用户提交表单时,数据库中的字段不被更新。
以前是否有人遇到过此问题,如果有,您是否能够解决它?

global $current_user;
global $wpdb;
$url = site_url();
// Tables
// Using $wpdb->prefix for table prefix
$table_users = "users";
$user_id = get_current_user_id();?>
<p>
<form method="post">
<!-- Field for language -->
<label for="LanguagesUser">Languages* : </label>
<input type="text" id="LanguagesUser" name="LanguagesUser" value="<?php echo um_user('LanguagesUser'); ?>" required>

                    <!-- Button to submit the form -->
                    <input type="submit" value="Update">
                </form>
            </p>
            <?php

            if ($_SERVER['REQUEST_METHOD'] === 'POST') {
                // Check if required data has been submitted
                if ( ! isset( $_POST['LanguagesUser'] ) || empty( $_POST['LanguagesUser'] ) ) {
                    // The field is empty, display an error message
                    echo '<p class="error">The "Languages" field is required</p>';
                } else {
                    // If the data has been submitted, retrieve and validate it
                    $LanguagesUser = sanitize_text_field( $_POST['LanguagesUser'] );

                    // Update the "LanguagesUser" user profile field in the database
                    if ( update_user_meta( $user_id, 'LanguagesUser', $LanguagesUser ) ) {
                        echo '<p class="success">The languages have been successfully updated for the user with ID '.$user_id.'</p>';
                    } else {
                        error_log( 'Database update failed for user with ID '.$user_id );
                    }
                }

我一直在尝试让一个WordPress用户使用表单更新他们的语言配置文件。我使用的脚本有当前用户和WordPress数据库的全局变量,还检索网站URL。表单包含一个供用户输入语言的字段和一个提交按钮。当用户提交表单时,脚本检查字段是否为空,清理输入数据,然后尝试使用“update_user_ meta”函数更新数据库中用户的语言字段。尽管收到此函数的正面反馈,但数据库中的语言字段未更新。因此,我正在寻求有关如何解决此问题的帮助。谢谢。

gr8qqesn

gr8qqesn1#

感谢您的帮助和及时响应!确实,您之前的声明是正确的,即脚本是由用户而不是所有者执行的。此特定用户具有在数据库上执行更新操作所需的权限。我确实使用MySQL命令验证了此特定用户的字段存在于数据库表中:SELECT * FROM wp_usermeta WHERE user_id = 1327 AND meta_key = 'LanguagesUser';
此外,我可以通过WordPress Jmeter 板的“用户”部分访问与用户对应的字段,在那里我可以查看和编辑他们的个人资料。然而,尽管可以使用表单修改此字段的内容,但所做的任何更改似乎对数据库中的相应字段没有任何影响。

相关问题