【发布时间】:2015-12-14 04:41:30
【问题描述】:
我的 MySQL 数据库中有几个表。它们有一定的命名约定,例如。
tbl_1_alpha
tbl_1_beta
tbl_1_alpha2
tbl_2_beta
tbl_3_alpha2
现在我想检查给定的表是否已经存在于数据库中。
例如。
-
$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;
}
对于给定的$name = tbl_1_alpha,它返回true。但是当我删除表tbl_1_alpha 时,它仍然返回true,因为它的名称与tbl_1_alpha2 匹配。我怎样才能避免这种情况?
谁能帮我匹配确切的表名并确定它是否已经存在?
【问题讨论】:
-
为什么不检查全名,没有通配符,没有LIKE
-
说真的,我怎么没看到
%。谢谢@Dagon -
这是一个命名约定?我很高兴我不参与其中。
标签: php mysql codeigniter