-1

I'm trying to get table names from sql database It should select and return the selected table from the database Please look at the code Why is this returning a record which does not exist in the database and why is this returning 62 arrays of the provided domain..............................................

public function DomainSearch($domain)
{
    $array = array();
    $query = "SELECT '".$domain."' FROM INFORMATION_SCHEMA.TABLES";
    $result = mysqli_query($this->conn, $query);
    while ($row = mysqli_fetch_assoc($result)) {
        $array[] = $row;
    }
    echo "<pre>";
    print_r($array);
    echo "<pre>";
    // $result = mysqli_num_rows($result);
    

}
}

$domain = "example_com";

$test = new DatabaseConnection();
$test->DomainSearch($domain);

The result

Array
(
    [0] => Array
        (
            [example_com] => example_com
        )

[1] => Array
    (
        [example_com] => example_com
    )

[2] => Array
    (
        [example_com] => example_com
    )

[3] => Array
    (
        [example_com] => example_com
    )

[4] => Array
    (
        [example_com] => example_com
    )

[5] => Array
    (
        [example_com] => example_com
    )

[6] => Array
    (
        [example_com] => example_com
    )

[7] => Array
    (
        [example_com] => example_com
    )

[8] => Array
    (
        [example_com] => example_com
    )

[9] => Array
    (
        [example_com] => example_com
    )

[10] => Array
    (
        [example_com] => example_com
    )

[11] => Array
    (
        [example_com] => example_com
    )

[12] => Array
    (
        [example_com] => example_com
    )

[13] => Array
    (
        [example_com] => example_com
    )

[14] => Array
    (
        [example_com] => example_com
    )

[15] => Array
    (
        [example_com] => example_com
    )

[16] => Array
    (
        [example_com] => example_com
    )

[17] => Array
    (
        [example_com] => example_com
    )

[18] => Array
    (
        [example_com] => example_com
    )

[19] => Array
    (
        [example_com] => example_com
    )

[20] => Array
    (
        [example_com] => example_com
    )

[21] => Array
    (
        [example_com] => example_com
    )

[22] => Array
    (
        [example_com] => example_com
    )

[23] => Array
    (
        [example_com] => example_com
    )

[24] => Array
    (
        [example_com] => example_com
    )

[25] => Array
    (
        [example_com] => example_com
    )

[26] => Array
    (
        [example_com] => example_com
    )

[27] => Array
    (
        [example_com] => example_com
    )

[28] => Array
    (
        [example_com] => example_com
    )

[29] => Array
    (
        [example_com] => example_com
    )

[30] => Array
    (
        [example_com] => example_com
    )

[31] => Array
    (
        [example_com] => example_com
    )

[32] => Array
    (
        [example_com] => example_com
    )

[33] => Array
    (
        [example_com] => example_com
    )

[34] => Array
    (
        [example_com] => example_com
    )

[35] => Array
    (
        [example_com] => example_com
    )

[36] => Array
    (
        [example_com] => example_com
    )

[37] => Array
    (
        [example_com] => example_com
    )

[38] => Array
    (
        [example_com] => example_com
    )

[39] => Array
    (
        [example_com] => example_com
    )

[40] => Array
    (
        [example_com] => example_com
    )

[41] => Array
    (
        [example_com] => example_com
    )

[42] => Array
    (
        [example_com] => example_com
    )

[43] => Array
    (
        [example_com] => example_com
    )

[44] => Array
    (
        [example_com] => example_com
    )

[45] => Array
    (
        [example_com] => example_com
    )

[46] => Array
    (
        [example_com] => example_com
    )

[47] => Array
    (
        [example_com] => example_com
    )

[48] => Array
    (
        [example_com] => example_com
    )

[49] => Array
    (
        [example_com] => example_com
    )

[50] => Array
    (
        [example_com] => example_com
    )

[51] => Array
    (
        [example_com] => example_com
    )

[52] => Array
    (
        [example_com] => example_com
    )

[53] => Array
    (
        [example_com] => example_com
    )

[54] => Array
    (
        [example_com] => example_com
    )

[55] => Array
    (
        [example_com] => example_com
    )

[56] => Array
    (
        [example_com] => example_com
    )

[57] => Array
    (
        [example_com] => example_com
    )

[58] => Array
    (
        [example_com] => example_com
    )

[59] => Array
    (
        [example_com] => example_com
    )

[60] => Array
    (
        [example_com] => example_com
    )

[61] => Array
    (
        [example_com] => example_com
    )

[62] => Array
    (
        [example_com] => example_com
    )

)

1 Answers1

0

There is no column in INFORMATION_SCHEMA.TABLES called "example_com".. what you actually do is to select the string "example_com" for all records in this table, which makes no sense.

I suppose you're looking for table which contains the search term.

Either use of the following queries is good, but the later one would allow you to seek over the boundaries of your current database... however, it requires that your MyQL user has the appropriate privileges.

Ok, first the easy method:

SHOW tables like '%example_com%'

This will already find the tables in your current database. The next query will do the same thing:

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME LIKE '%example_com%'

But it would actually allow you to find also table in other databases. Just remove the part TABLE_SCHEMA = DATABASE() from the query (you'll probably want to choose more fields from the table)

Honk der Hase
  • 2,459
  • 1
  • 14
  • 26