Retrieve database table names and print them out

2019-08-06 17:58发布

问题:

This should be fairly simple. I've crafted an SQL query that dumps all matching database table names to an array. I want to print them out, yet for some reason I cannot. Please help!

Database tables are named: example_1, example_2, etc.

My code:

$sql = "SHOW TABLES LIKE 'example_%'";
$results = $wpdb->get_results($sql);

Doing a print_r($results) shows that all the table names were successfully retrieved. Example output:

Array ( [0] => stdClass Object ( [Tables_in_wordpress (example_%)] => example_1 ) [1] => stdClass Object ( [Tables_in_wordpress (example_%)] => example_2 ) )

So then I tried:

foreach($results as $res) {
  echo $res;
}

But no luck. How can I iterate through $results to print out each table name? Is there something like $results[0].value I could use to retrieve the values?

回答1:

I believe this is what you need to do:

$sql = "SHOW TABLES LIKE '%'";
$results = $wpdb->get_results($sql);

foreach($results as $index => $value) {
    foreach($value as $tableName) {
        echo $tableName . '<br />';
    }
}

The => will separate the key and value from a multidimensional array.



回答2:

Try following code.

global $wpdb;
$res = $wpdb->tables();
var_dump($res);