I run into a problem I can't seem to fix. I went back and forth and even used $wpdb->prepare() and $wpdb->query() functions, nothing helps.

$table_prefix."users" returns wp_2qttgdv7ac_2_users (slightly changed in post for security purposes). Yes, I've tried $wpdb->prefix as well. Same result.

$wpdb->update($table_prefix."users", array('user_email' => $fetch_data['new_email']), array('user_login' => $fetch_data['username']))

This was not working, but on running...

var_dump( $wpdb->last_error)

I get the error:

string(59) "Table 'A41K421094D3615.wp_2qttgdv7ac_2_users' doesn't exist"

Here A41K421094D3615 is the database name. I am running in a multi-site environment. However, accessing custom tables does not add database name in front of the table. How can I get it to stop adding it? Or at least make it honor the table. Usually database_name.table_name should work, right? However, it's returning that it does not exist. Any suggestions?

  • WordPress isn't adding the table name to the SQL: MySQL is including it for context when it's generating the error. Try use A41K421094D3615; select * from wp_2qttgdv7ac_2_users; in MySQL and you'll get the same error even though the database name wasn't in the SELECT. Does that table actually exist? – Rup May 16 '19 at 16:30
  • You are right wp_2qttgdv7ac_2_users doesn't exist when I confirmed with PhpMyAdmin. Users for multisite is saved on the same table wp_2qttgdv7ac_users as other sites on a multisite network. Using $wpdb->prefix and $table_prefix provides "wp_2qttgdv7ac_2_" - using $wpdb->base_prefix solved the problem. – Mafuyu-Chama May 16 '19 at 16:58

Use $wpdb->base_prefix for 'users' table.

  • That worked beautifully! Thanks – Mafuyu-Chama May 16 '19 at 16:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.