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 - https://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 tag defines the clickable areas inside the image map?
<map> <img> <area>
<img src="image.jpg" usemap="#map1">
<map name="map1">
  <area shape="rect" coords="9, 120, 56, 149" href="#">
  <area shape="rect" coords="100, 200, 156, 249" href="#">
</map>
Which CSS property defines what is done if the content in a box is too big for its defined space?
display overflow position
#id {
  overflow: auto;
}
Click on the event which is triggered when the mouse is positioned over an object.
onclick onmouseover onmouseout
document.getElementById("id").onmouseover = function(){
  document.write("Have Good Life");
}
Indicate the PHP variable that contains data added in URL address after the "?" character.
$_SESSION $_GET $_POST
if(isset($_GET["id"])) {
  echo $_GET["id"];
}
Check if table exists in databse

Last accessed pages

  1. Get visitor IP in PHP (842)
  2. PHP PDO - exec (INSERT, UPDATE, DELETE) MySQL (43359)
  3. Common PHP Errors and Solutions (6866)
  4. SSEP - Site Search Engine PHP-Ajax (7095)
  5. PHP Method Chaining (1706)

Popular pages this month

  1. Insert, Select and Update NULL value in MySQL (697)
  2. Read Excel file data in PHP - PhpExcelReader (625)
  3. PhpSpreadsheet - Read, Write Excel and LibreOffice Calc files (394)
  4. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (347)
  5. PHP getElementById and getElementsByTagName (311)