Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用SQL修改wordpress用户的角色_Php_Mysql_Database_Mysqli - Fatal编程技术网

Php 使用SQL修改wordpress用户的角色

Php 使用SQL修改wordpress用户的角色,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,我试图在用户登录页面24小时后更改其角色。用户和密码已经在我的数据库中,我正在等待他们24小时后登录以更改角色。 我只是想知道如何从所有其他表中只选择wp_功能,但我不知道如何更改它 这是原始代码 <?php $servername = 'localhost'; $username = 'root'; $password = ''; $dbname = 'wp'; $conn = mysqli_connect( $servername, $user

我试图在用户登录页面24小时后更改其角色。用户和密码已经在我的数据库中,我正在等待他们24小时后登录以更改角色。 我只是想知道如何从所有其他表中只选择wp_功能,但我不知道如何更改它

这是原始代码

<?php
    $servername = 'localhost';
    $username = 'root';
    $password = '';
    $dbname = 'wp';

    $conn = mysqli_connect( $servername, $username, $password, $dbname );

    if( $conn->connect_error ) {
      die ( "Conection Failed: " . $conn->connect_error );
    }

    $sql = "SELECT wp_users.ID, wp_users.user_nicename
            FROM wp_users INNER JOIN wp_usermeta
            ON wp_users.ID = wp_usermeta.user_id
            WHERE wp_usermeta.meta_key = 'wp_capabilities'
            AND wp_usermeta.meta_value LIKE '%subscriber%'
            SET wp_usermeta.meta_value='meh' ";

    if ( $conn->query($sql) === TRUE ) {
      echo "yay";
    } else {
      echo "oh no: " . $conn->error;
    }
   ?>
我将非常感谢您的帮助,因为这是我的第一个SQL项目,正如FluffyKitten所说的那样,非常令人惊讶。 万一有人想要答案

$user_id = 2;
$new_value = array( 'subscriber' => 1 );
$updated = update_user_meta( $user_id, 'wp_capabilities', $new_value );

您可以更改数组并编写任何角色

Hi,您在
SELECT
中有一个
SET
,这是错误的,
SET
带有
UPDATE
语句,您应该修改SQL基础,除此之外,您应该使用Wordpress预定义的PHP函数来为用户更改角色,由于直接在Wordpress数据库中进行黑客攻击可能会产生误导和风险。我想您是根据表名使用Wordpress的吧?在这种情况下,您不应该通过SQL直接更改WP数据库中的值。管理用户有很多方法。我建议您对此进行一些研究,然后用您使用的代码更新您的问题,并为wordpress重新标记它。直接针对数据库运行SQL Select语句以解决语法问题可能是值得的-但是正如其他人所说,听起来内置函数更适合解决您的问题问题。@FluffyKitten你是个圣人,非常感谢你
$user_id = 2;
$new_value = array( 'subscriber' => 1 );
$updated = update_user_meta( $user_id, 'wp_capabilities', $new_value );