Another way to check if a table exists:
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1) echo "Table exists";
else echo "Table does not exist";
mysql_tablename
(PHP 4, PHP 5)
mysql_tablename — Get table name of field
Description
Retrieves the table name from a result.
This function is deprecated. It is preferable to use mysql_query() to issue an SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] statement instead.
Parameters
- result
-
A result pointer resource that's returned from mysql_list_tables().
- i
-
The integer index (row/table number)
Return Values
The name of the table on success or FALSE on failure.
Use the mysql_tablename() function to traverse this result pointer, or any function for result tables, such as mysql_fetch_array().
Examples
Example #1 mysql_tablename() example
<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_list_tables("mydb");
$num_rows = mysql_num_rows($result);
for ($i = 0; $i < $num_rows; $i++) {
echo "Table: ", mysql_tablename($result, $i), "\n";
}
mysql_free_result($result);
?>
Notes
Note:
The mysql_num_rows() function may be used to determine the number of tables in the result pointer.
See Also
- mysql_list_tables() - List tables in a MySQL database
- mysql_field_table() - Get name of the table the specified field is in
- mysql_db_name() - Retrieves database name from the call to mysql_list_dbs

A simple function to check for the existance of a table:
function TableExists($tablename, $db) {
// Get a list of tables contained within the database.
$result = mysql_list_tables($db);
$rcount = mysql_num_rows($result);
// Check each in list for a match.
for ($i=0;$i<$rcount;$i++) {
if (mysql_tablename($result, $i)==$tablename) return true;
}
return false;
}