Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/07/2002, 21:35
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Re: Como saber si una tabla existe?

En la sintaxis SQL (de Mysql) para crear una BD .. tienes el parametro opcional IF NOT EXISTS eso le idica a Mysql que cree la tabla si no existe ..

con lo cual .. tu forma de crear las Tablas seria:

$SQL="
CREATE TABLE nombre IF NOT EXISTS (
definicion de campos .. etc ..
)
"

Al hacer tu consulta (query; mysql_query() ) .. NO la creara .. pues tiene el parametro "IF NO EXIST" .... y puedes continuar con el resto de logica de tu programacion ..

<a href='ir.asp?http://www.mysql.com/doc/C/R/CREATE_TABLE.html' target='_blank'>http://www.mysql.com/doc/C/R/CREATE_TABL...</a>

jeje aunque pensandolo mejor .. tienes la funcion:

mysql_list_tables() con la cual puedes mostrar las tablas de una BD (en combinacion con otra funcion .. )

<a href='ir.asp?http://www.php.net/manual/es/function.mysql-list-tables.php' target='_blank'>http://www.php.net/manual/es/function.my...</a>

Y otra solucion (descrita en los &quot;user comments&quot;, los mesajes de cada funcion en la version en linea del manual de php .. ) dan esta solucion facil:

Código:
 function mysql_table_exist($tableName)
{
	$query = &quot;SELECT COUNT(*) FROM $tableName&quot;;
        $result = mysql_query($query);
	$num_rows = @mysql_num_rows($result);
	if($num_rows)
	{
		return TRUE;
	}
	else
	{

		return FALSE;
	}

}
Como veras es una funcion q devulver verdadero/falso si la tabla que se quiere usar tiene campos creados o no .. Pruebalo:

$tableName=&quot;tutabla&quot;;
if (mysql_table_exist($tableName)){
echo &quot;esta creada&quot;;
} else {
echo &quot;no esta creada&quot;;
}

Un saludo,

pd: casi me salio un minitutorial :P