I have couple of tables in my MySQL database. They have a certain naming convention such as.
tbl_1_alpha
tbl_1_beta
tbl_1_alpha2
tbl_2_beta
tbl_3_alpha2
Now I want to check wether a given table is already exists in the database.
eg.
$name = 'tbl_1_alpha' -> exists
$name = 'tbl_1_alpha2' -> exists
$name = 'tbl_1_alpha3' -> does not exists
To get the result I used the following functions
public function exists($name)
{
$query = "SHOW TABLES LIKE '$name%'";
$result = $this->db->query($query);
if ($result->num_rows() > 0) {
return true;
}
return false;
}
for a given $name = tbl_1_alpha it return true. But When I delete the table tbl_1_alpha it still returns true because it matches the name to tbl_1_alpha2. How can I avoid that?
Can anyone help me to match the exact table name and figure out wether it is already exist or not?
解决方案
No need of query. just run this
$this->db->table_exists('customer');
Example
$query = $this->db->table_exists('customer');
$count = count($query);
if (empty($count)) {
echo "No Table Found";
}
elseif ($count == 1) {
echo "Oopzz! There is table";
}
elseif ($count >1) {
echo "Ohh !! There are many tables";
}