理论上听起来很简单,我已经做了大量的研究,但我很难搞清楚这一点.
如何检查MySQL表是否存在以及它是否确实存在.(我想一个简单的php if/else语句可以用于此)
有没有办法做到这一点?
这就是我对cwallenpoole的回应所做的:
mysql_connect("SERVER","USERNAME","PASSWORD");
mysql_select_db('DATABASE');
$val = mysql_query('select 1 from `TABLE`');
if($val !== FALSE)
{
print("Exists");
}else{
print("Doesn't exist");
}
Run Code Online (Sandbox Code Playgroud) 我的 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. 我怎样才能避免这种情况?
谁能帮我匹配确切的表名并弄清楚它是否已经存在?