In this tutorial you can learn how to check with PHP if one, or multiple tables exist into a MySQL database.
The SQL command that returns a list with all the tables in database is this:

SHOW TABLES
OR:
SHOW TABLES IN `database_name`
- This query returns the name of the tables in a database, the result is stored into an alias named Tables_in_databasename ; databasename is the name of the database.

For example, if we have a MySQL database named "tests", with these tables: users, temp, and online; we can use the following code in PHP to get a list with the table's name:
<?php
// connect to the "tests" database
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// check connection
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// SQL query
$sql = "SHOW TABLES IN `tests`";

// perform the query and store the result
$result = $conn->query($sql);

// if the $result not False, and contains at least one row
if($result !== false) {
  // if at least one table in result
  if($result->num_rows > 0) {
    // traverse the $result and output the name of the table(s)
    while($row = $result->fetch_assoc()) {
      echo '<br />'. $row['Tables_in_tests'];
    }
  }
  else echo 'There is no table in "tests"';
}
else echo 'Unable to check the "tests", error - '. $conn->error;

$conn->close();
?>
This code will return the following result:
users
temp
online

If you want to check if a certain table exists into a MySQL database, you can use this SQL query:
SHOW TABLES IN `databasename` WHERE `Tables_in_databasename` = 'table_name'

- For example, to check if the "users" table exists in the "tests" database, we can use this code in PHP:
<?php
// connect to the "tests" database
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// check connection
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// SQL query
$sql = "SHOW TABLES IN `tests` WHERE `Tables_in_tests` = 'users'"; 

// perform the query and store the result
$result = $conn->query($sql);

// if the $result not False, and contains at least one row
if($result !== false) {
  // if the $result contains at least one row, the table exists, otherwise, not exist
  if ($result->num_rows > 0) echo 'The table "users" exists';
  else echo 'The table "users" Not exists';
}
else echo 'Unable to check the "tests", error - '. $conn->error;

$conn->close();
?>

Function to check if one ore multiple tables exist in a database

The following function can be used in PHP to see if one, or multiple tables exists in a MySQL database.
// check if tables passed in $tables exists in $db
function tableExist($conn, $db, $tables) {
  $eror = false;

  // if $tables is a string, convert it into an Array
  if(is_string($tables)) $tables = array($tables);

  $result=$conn->query("SHOW TABLES IN `$db`");
  if($result !== false) {
    // if at least one table in result
    if($result->num_rows > 0) {
      // traverse the $result and store all tables into an array
      while($row = $result->fetch_assoc()) {
        $tables_db[] = $row['Tables_in_'.$db];
      }

      // check if each table from $tables is in $tables_db, if not, sets error
      for($i=0; $i<count($tables); $i++) {
        if(!in_array($tables[$i], $tables_db)) $eror[] = 'Table '. $tables[$i]. ' Not exist in "'. $db. '"';
      }
    }
    else $eror[] = 'There is no table in "'. $db. '"';
  }
  else $eror[] = 'Unable to check the "'. $db. '"';

  // if $eror not False, output errors and returns false, otherwise, returns true
  if($eror !== false) {
    echo implode('<br/>', $eror);
    return false;
  }
  else return true;
}
The tableExist() function receives three arguments:
- $conn - is the object that contains the connection to MySQL.
- $db - represents the name of the database.
- $tables - can be a string with the name of a table, or an Array with multiple table names.

• Example, check if the tables: "comments", "temp", and "users" exist in database "tests".
<?php
// Free WebMaster courses - http://coursesweb.net

// check if tables passed in $tables exists in $db
function tableExist($conn, $db, $tables) {
  $eror = false;

  // if $tables is a string, convert it into an Array
  if(is_string($tables)) $tables = array($tables);

  $result=$conn->query("SHOW TABLES IN `$db`");
  if($result !== false) {
    // if at least one table in result
    if($result->num_rows > 0) {
      // traverse the $result and store all tables into an array
      while($row = $result->fetch_assoc()) {
        $tables_db[] = $row['Tables_in_'.$db];
      }

      // check if each table from $tables is in $tables_db, if not, sets error
      for($i=0; $i<count($tables); $i++) {
        if(!in_array($tables[$i], $tables_db)) $eror[] = 'Table '. $tables[$i]. ' Not exist in "'. $db. '"';
      }
    }
    else $eror[] = 'There is no table in "'. $db. '"';
  }
  else $eror[] = 'Unable to check the "'. $db. '"';

  // if $eror not False, output errors and returns false, otherwise, returns true
  if($eror !== false) {
    echo implode('<br/>', $eror);
    return false;
  }
  else return true;
}

$db = 'tests';
// connect to the "tests" database
$conn = new mysqli('localhost', 'root', 'pass', $db);

// check connection
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// array with the tables to test
$tables = array('comments', 'temp', 'users');

// calls the tableExist() function
if(tableExist($conn, $db, $tables)) echo 'All the tables: <i>'. implode(', ', $tables). '</i> exists';
?>

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which meta tag provides a short description of the page?
<meta content="..."> <meta description="..."> <meta http-equiv="...">
<meta name="description" content="70-160 characters that describes the content of the page" />
Which CSS property is used to stop the wrapping effect of the "float"?
clear text-align position
#some_id {
  clear: both;
}
Click on the method which gets an array with all the elements in the document that have a specified tag name.
getElementsByName() getElementById() getElementsByTagName()
var divs = document.getElementsByTagName("div");
var nr_divs = divs.length;
alert(nr_divs);
Indicate the PHP function which returns the number of elements in array.
is_[) count() strlen()
$arr =[7, 8, "abc", 10);
$nri = count($arr);
echo $nri;        // 4
Check if table exists in databse

Last accessed pages

  1. Simple Admin Login PHP Script (587)
  2. PuzzleImg - Script to Create Image Puzzle Game (1805)
  3. Editing, Changing XML - E4X (1002)
  4. Select in MySQL, Output results in HTML Table (696)
  5. Qwop (60365)

Popular pages this month

  1. Qwop (5845)
  2. Drag Racer V3 (2771)
  3. Flash Games - Free online Games (1439)
  4. Courses Web: PHP-MySQL JavaScript Ajax HTML CSS Flash-AS3 (1246)
  5. Bubbles3 (1115)