Php 使用SQL修改wordpress用户的角色
我试图在用户登录页面24小时后更改其角色。用户和密码已经在我的数据库中,我正在等待他们24小时后登录以更改角色。 我只是想知道如何从所有其他表中只选择wp_功能,但我不知道如何更改它 这是原始代码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
<?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 );