Saber si una tabla de una BD existe

No hay una función específica para saber si una tabla de una base de datos existe o no, pero si que hay una función que te devuelve una matriz con todos los nombres de las tablas 'mysql_list_tables("base de datos")'.
Después sencillamente se hace un bucle en el que a cada paso se le va signando un nombre de la matriz $tablas, si en un paso se encuentra con una tabla con el mismo nombre que el que hemos pasado (el if), es que esta tabla existe por lo que se devuelve 1 (true), si el bucle finaliza con normalidad, significa que no ha encontrado el nombre de la tabla y no devolverá nada (false).
Al principio y al final hemos incluido las funciones de conexión y desconexión de la base de datos, necesarios para trabajar con ellas.
Esta función recibe dos parámetros; el nombre de la tabla y el nombre de la base de datos.



Código:
//Copyright © McAnam.com

$lincador = mysql_connect("servidor","usuario","contraseña");

function tabla_existe($nombre_tb,$base_datos) {

$tablas = mysql_list_tables($base_datos);

while (list($tabla) = mysql_fetch_array($tablas)) {
if ($nombre_tb == $tabla){
return true;
break;
}
}
return false;
}

//Ejemplo de utilización de la función:
if (tabla_existe("nombre tabla","nombre base de datos"))
echo "La tabla que has seleccionado existe en tu base de datos";
else
echo "La tabla que has seleccionado NO existe en tu base de datos";

//Fin ejemplo
mysql_close($lincador);
?>

1 comentario:

jesusnoseq dijo...

Cuidado con la función mysql_list_dbs, está obsoleta.
Es mejor hacer la consulta:
SHOW DATABASES LIKE '$db';

http://www.php.net/manual/es/function.mysql-list-dbs.php