MySQL 检查表是否已经存在

Faw*_*zan 2 php mysql codeigniter

我的 MySQL 数据库中有几个表。它们有一定的命名约定,例如。

tbl_1_alpha
tbl_1_beta
tbl_1_alpha2
tbl_2_beta
tbl_3_alpha2
Run Code Online (Sandbox Code Playgroud)

现在我想检查数据库中是否已经存在给定的表。

例如。

  • $name = 'tbl_1_alpha' -> 存在
  • $name = 'tbl_1_alpha2' -> 存在
  • $name = 'tbl_1_alpha3' -> 不存在

为了得到结果,我使用了以下函数

 public function exists($name)
    {

        $query = "SHOW TABLES LIKE '$name%'";

        $result = $this->db->query($query);

        if ($result->num_rows() > 0) {
            return true;
        }
        return false;

    }
Run Code Online (Sandbox Code Playgroud)

对于给定的$name=tbl_1_alpha它返回true. 但是当我删除表时,tbl_1_alpha它仍然返回,true因为它的名称与tbl_1_alpha2. 我怎样才能避免这种情况?

谁能帮我匹配确切的表名并弄清楚它是否已经存在?

Abd*_*lam 5

无需查询。只需运行这个

$this->db->table_exists('customer');
Run Code Online (Sandbox Code Playgroud)

表格数据


例子

$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";
}
Run Code Online (Sandbox Code Playgroud)