当您使用$wpdb->prepare
占位符%s
替换为引号之间的内容,因此,您的查询变成:
"SELECT * FROM \'wp_users\' WHERE ID = 1"
但是SQL查询中的表名必须
not 用引号括起来。因此,正确的方法是:
$sql = $wpdb->prepare( "SELECT * FROM {$wpdb->users} WHERE ID = %d", 1 );
$results = $wpdb->get_results($sql);
请注意,这可能不起作用,因为无法确保存在id为1的用户。(实际上,出于安全原因,有人不鼓励使用ID=1的用户)。
如果要选择第一个用户,最好使用以下内容:
$user = $wpdb->get_row( "SELECT * FROM {$wpdb->users} ORDER BY ID ASC LIMIT 1" );
通过这种方式,您可以获得第一个用户行,无论其ID是什么。