phpl判断mysq数据库中的某个数据表是否存在的方法总结

时间:2022-01-11 12:13:44

注意:以下都是在ThinkPHP框架中进行测试

方式1

通过查询MySQL的配置表信息

//TABLE_SCHEMA:表示数据库名 , TABLE_NAME : 表示表名  
$sql = "SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='database_name' and TABLE_NAME = 'table_name'";
$model = new \Think\Model();
$res = $model->query($sql);
$isExist = $res[0];

方式2

查询指定数据中的所有数据表,然后比较查询的数据表是否存在

//检测表是否存在
function tableExist($tableName){
if(empty($tableName)) return false;
$tableName = C('DB_PREFIX').$tableName;
$model = new \Think\Model();
$tableArr = $model->query('SHOW TABLES');
$_fName = 'tables_in_'.C('DB_NAME');
return in_array($tableName, array_column($tableArr, $_fName));
}