How to Test PHP MySQL Database Connection Using Script

MySQL is a popular database management system while PHP is a server-side scripting language suitable for web development; together with Apache or Nginx HTTP servers, are the different components of the LAMP (Linux Apache MySQL/MariaDB PHP) or LEMP (Linux Nginx MySQL/MariaDB PHP) stack receptively.

If you are a web developer then you might have installed these software packages or used them to setup a local web server on your system. In order for your website or web application to store data, it needs a database such as MySQL/MariaDB.

For the web application users to interact with the information stored in the database, there must be a program running on the server to pick requests from client and pass to the server.

In this guide, we will explain how to test a MySQL database connection using a PHP file. Before moving further, make sure you must have LAMP or LEMP installed on the system, if not follow these tutorials to setup.

Setup LAMP Stack on Linux Systems

  1. Install LAMP (Linux, Apache, MariaDB or MySQL and PHP) Stack on Debian 9
  2. How to Install LAMP with PHP 7 and MariaDB 10 on Ubuntu 16.10
  3. Installing LAMP (Linux, Apache, MariaDB, PHP/PhpMyAdmin) in RHEL/CentOS 7.0

Setup LEMP Stack on Linux Systems

  1. How to Install LEMP (Linux, Nginx, MariaDB, PHP-FPM) on Debian 9 Stretch
  2. How To Install Nginx, MariaDB 10, PHP 7 (LEMP Stack) in 16.10/16.04
  3. Install Latest Nginx 1.10.1, MariaDB 10 and PHP 5.5/5.6 on RHEL/CentOS 7/6 & Fedora 20-26

Quick MySQL Database Connection Test Using PHP Script

To do a quick PHP MySQL DB connection test, we will use a following handy script as file db-connect-test.php.

# Fill our vars and run on cli
# $ php -f db-connect-test.php

$dbname = 'name';
$dbuser = 'user';
$dbpass = 'pass';
$dbhost = 'host';

$link = mysqli_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");
mysqli_select_db($link, $dbname) or die("Could not open the db '$dbname'");

$test_query = "SHOW TABLES FROM $dbname";
$result = mysqli_query($link, $test_query);

$tblCnt = 0;
while($tbl = mysqli_fetch_array($result)) {
  #echo $tbl[0]."<br />\n";

if (!$tblCnt) {
  echo "There are no tables<br />\n";
} else {
  echo "There are $tblCnt tables<br />\n";
Script to Test PHP MySQL DB Connection
Script to Test PHP MySQL DB Connection

Now change the database name, database user and user password as well as the host to your local values.

$dbname = 'name';
$dbuser = 'user';
$dbpass = 'pass';
$dbhost = 'host';

Save and close the file. Now run it as follows; it should print the total number of tables in the specified database.

$ php -f db-connect-test.php
MySQL DB Connection Test
MySQL DB Connection Test

You can cross check manually by connecting to the database server and listing the total number of tables in the particular database.

You may also like to check out these following related articles.

  1. How to Find MySQL, PHP and Apache Configuration Files
  2. 12 Useful PHP Commandline Usage Every Linux User Must Know
  3. How to Hide PHP Version Number in HTTP Header

Do you have any other way or script to test a MySQL DB connection? If yes, then use the feedback form below to do that.

Tutorial Feedback...
Was this article helpful? If you don't find this article helpful or found some outdated info, issue or a typo, do post your valuable feedback or suggestions in the comments to help improve this article...

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

12 thoughts on “How to Test PHP MySQL Database Connection Using Script”

  1. This is a great script for troubleshooting purposes.

    Question: Is there any modification that can be made to it that lists the column names in a table instead of just a table count?

    Thanks in advance,


  2. Hey @Aaron Kili, thanks for this script it was very useful to me. Now I want to build a small PHP script about an invoice without a user interface, it should check for me how many customers in the database have paid in the database, then i should be able to put this as a service since its sending to many people.

    My question is how do i get to build this system without a user interface and and my invoice should have CSS script embedded. please help thanks

    • @Elizabeth

      What do you want to use the CSS for if you don’t want a user interface(UI)? To the best of my knowledge, CSS is used for describing the presentation of Web pages. Trying to embed CSS means adding a UI.

  3. This is an integration test. Next Step could be to adapt it into an automation framework (phpunit?) and then be used as part of a CI pipeline.


Got something to say? Join the discussion.

Have a question or suggestion? Please leave a comment to start the discussion. Please keep in mind that all comments are moderated and your email address will NOT be published.