Knowledge Base

How to connect to MySQL using PHP

This article describes several methods for connecting to a MySQL database using PHP:

  • MySQL Improved (mysqli) extension
  • PDO (PHP Data Objects)
  • Legacy MySQL (mysql_) functions
  • Connecting to a remote MySQL database using PHP
The MySQL databases and users must already exist before you can use these methods. For information about how to manage MySQL databases using cPanel, please see this article.

Connecting to MySQL using the MySQL Improved extension

The MySQL Improved extension uses the mysqli class, which replaces the set of legacy MySQL functions.

To connect to MySQL using the MySQL Improved extension, follow these steps:

  1. Use the following PHP code to connect to MySQL and select a database. Replace username with your username, password with your password, and dbname with the database name:
    <?php
     $mysqli = new mysqli("localhost", "username", "password", "dbname"); 
    ?>
    
  2. After the code connects to MySQL and selects the database, you can run SQL queries and perform other operations. For example, the following PHP code runs a SQL query that extracts the last names from the employees table, and stores the result in the $result variable:

    <?php
     $result = $mysqli->query("SELECT lastname FROM employees");
    ?>
    

Connecting to MySQL using PDO (PHP Data Objects)

The MySQL Improved extension can only be used with MySQL databases. PDO, on the other hand, abstracts database access and enables you to create code that can handle different types of databases.

To connect to MySQL using PDO, follow these steps:

  1. Use the following PHP code to connect to MySQL and select a database. Replace username with your username, password with your password, and dbname with the database name:
    <?php
     $myPDO = new PDO('mysql:host=localhost;dbname=dbname', 'username', 'password'); 
    ?>
    
  2. After the code connects to MySQL and selects the database, you can run SQL queries and perform other operations. For example, the following PHP code runs a SQL query that extracts the last names from the employees table, and stores the result in the $result variable:

    <?php
     $result = $myPDO->query("SELECT lastname FROM employees");
    ?>
    

Connecting to MySQL using the legacy MySQL functions

The original PHP MySQL functions (whose names begin with mysql_) are deprecated in PHP 5.5, and will eventually be removed from PHP. Therefore, you should only use these functions when absolutely necessary for backward compatibility. If possible, use the MySQL Improved extension or PDO instead.

To connect to MySQL using the legacy PHP MySQL functions, follow these steps:

  1. Use the following PHP code to connect to MySQL and select a database. Replace username with your username, password with your password, and dbname with the database name:
    <?php
     mysql_connect('localhost','username','password');
     mysql_select_db("dbname");
    ?>
    
  2. After the code connects to MySQL and selects the database, you can run SQL queries and perform other operations. For example, the following PHP code runs a SQL query that extracts the last names from the employees table, and stores the result in the $result variable:

    <?php
     $result = mysql_query('SELECT lastname FROM employees');
    ?>
    

Connecting to a remote MySQL database using PHP

The previous examples all assume that the PHP script runs on the same server where the MySQL database is located. But what if you want to use PHP to connect to a MySQL database from a remote location? For example, you may want to connect to your Webhost.Berlin database from a home computer or from another web server.

To do this, you need to do two things:

  • On the Webhost.Berlin server, enable the connecting IP address for remote access. For information about how to do this, please see this article.
    If you do not add your IP address to the list of permitted remote access hosts, you receive Access denied messages when you try to access a MySQL database remotely.
  • In your PHP code, change the MySQL connection string to use the Webhost.Berlin server name instead of localhost. For example, the following PHP code uses mysqli to connect to the Webhost.Berlin server L3ss25.berlin.hosting:
    <?php
     $mysqli = new mysqli("L3ss25.berlin.hosting", "username", "password", "dbname"); 
    ?>
    
    For information about how to determine your account's server name, please see this article.

More Information