DEV Community

Falah Al Fitri
Falah Al Fitri

Posted on • Edited on

3 1

PHP and MySQL 10: connection


Happy Coding

Home

In this post, we will learn about how to create connection between PHP as server-side with MySQL as database-engine.

There are 3 ways that will we use:

  1. MySQLi procedural
  2. MySQLi object-oriented
  3. PDO

First, create a PHP file with standar name, like index.php, then write the needed variables:

    $hostname = "localhost";
    $port     = "3306";

    $username = "root";
    $password = "";
Enter fullscreen mode Exit fullscreen mode

1. MySQLi1 procedural

Back to Home

Create connection using mysqli::__construct2:

    $connection = mysqli_connect( $hostname, $username, $password );
Enter fullscreen mode Exit fullscreen mode

Check connection, if there is errors, call mysqli_connect_error()3 function inside exit()4 function and use var_dump()5 function with argument of the $connection for get the result:

    if ( ! $connection ) 
    {

        exit( "Connection failed: " . mysqli_connect_error() );

    }
    else
    {

        echo "Connnected succesfully to server";

        echo "<pre>";
        var_dump($connection);
        echo "</pre>";

    }
Enter fullscreen mode Exit fullscreen mode

Close connection using mysqli::close6:

    mysqli_close($connection);
Enter fullscreen mode Exit fullscreen mode

Source Code:

2. MySQLi1 object-oriented

Back to Home

Create connection:

    $connection = new mysqli( $hostname, $username, $password );
Enter fullscreen mode Exit fullscreen mode

Check connection:

    if ( $connection->connect_error ) 
    {

        exit( "Connection failed: {$connection->connect_error}" );

    }
    else
    {

        echo "Connnected succesfully to server";

        echo "<pre>";
        var_dump($connection);
        echo "</pre>";

    }
Enter fullscreen mode Exit fullscreen mode

Close connection:

    $connection->close();
Enter fullscreen mode Exit fullscreen mode

Source Code:

3. PDO7

Back to Home

Especially for PDO, we will use try catch

    try
    {
Enter fullscreen mode Exit fullscreen mode

Set dsn and attribute [option]

        $dsn = "mysql:host=$hostname;port=$port";

        $setAttribute = array(
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'",
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
        );
Enter fullscreen mode Exit fullscreen mode

Create connection using PDO::__construct8:

        $connection = new PDO( $dsn, $username, $password, $setAttribute );
Enter fullscreen mode Exit fullscreen mode

Check connection:

        if ( $connection ) 
        {

            echo "Connnected succesfully to server";

            echo "<pre>";
            var_dump($connection);
            echo "</pre>";

        }

    }
Enter fullscreen mode Exit fullscreen mode

Get and print error message, if exist:

    catch ( PDOException $err )
    {

        echo "Connection failed: " . $err->getMessage();

    }
Enter fullscreen mode Exit fullscreen mode

Close connection with set $connection equal to null:

    $connection = null;
Enter fullscreen mode Exit fullscreen mode

Source Code:

Back to Home | Next


Thank for reading :)


  1. php.net, "MySQL Improved Extension", accessed on date 21 december 2019 and from https://www.php.net/manual/en/book.mysqli.php 

  2. php.net, "mysqli::__construct", accessed on date 21 december 2019 and from https://www.php.net/manual/en/mysqli.construct.php 

  3. php.net, "mysqli_connect_error", accessed on date 21 december 2019 and from https://www.php.net/manual/en/mysqli.connect-error.php 

  4. php.net, "exit", accessed on date 21 december 2019 and from https://www.php.net/manual/en/function.exit.php 

  5. php.net, "var_dump", accessed on date 21 december 2019 and from https://www.php.net/manual/en/function.var-dump.php 

  6. php.net, "mysqli::close", accessed on date 21 december 2019 and from https://www.php.net/manual/en/mysqli.close.php 

  7. php.net, "PHP Data Objects", accessed on date 21 december 2019 and from https://www.php.net/manual/en/book.pdo.php  

  8. php.net, "PDO::__construct", accessed on date 21 december 2019 and from https://www.php.net/manual/en/pdo.construct.php  

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay