Sei sulla pagina 1di 28

Opening a connection to MySQL database from PHP is easy. Just use the mysql_connect() function like this

<?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'password';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die mysql');

$dbname = 'petstore'; mysql_select_db($dbname); ?>

('Error connecting to

$dbhost is the name of MySQL server. When your webserver is on the same machine with the MySQL server you can use localhost or as the value of $dbhost. The $dbuser and $dbpass are valid MySQL user name and password. For adding a user to MySQL visit this page : MySQL Tutorial

Don't forget to select a database using mysql_select_db() after connecting to mysql. If no database selected your query to select or update a table will not work.

Sometimes a web host will require you to specify the MySQL server name and port number. For example if the MySQL server name is and the port number is 3306 (the default port number for MySQL) then you you can modify the above code to :

<?php $dbhost = ''; $dbuser = 'root'; $dbpass = 'password';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die mysql');

$dbname = 'petstore'; mysql_select_db($dbname); ?>

('Error connecting to

It's a common practice to place the routine of opening a database connection in a separate file. Then everytime you want to open a connection just include the file. Usually the host, user, password and database name are also separated in a configuration file.

An example of config.php that stores the connection configuration and opendb.php that opens the connection are :

Source code : config.phps , opendb.phps

<?php // This is an example of config.php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'password'; $dbname = 'phpcake'; ?>

<?php // This is an example opendb.php $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die mysql'); mysql_select_db($dbname); ?>

('Error connecting to

So now you can open a connection to mysql like this :

<?php include 'config.php'; include 'opendb.php';


do something like insert or select, etc


Closing the Connection The connection opened in a script will be closed as soon as the execution of the script ends. But it's better if you close it explicitly by calling mysql_close() function. You could also put this function call in a file named closedb.php.

Source code : closedb.phps

<?php // an example of closedb.php // it does nothing but closing // a mysql database connection



Now that you have put the database configuration, opening and closing routines in separate files your PHP script that uses mysql would look something like this :

<?php include 'config.php'; include 'opendb.php';


do something like insert or select, etc

include 'closedb.php';


Recent Comments By: phpmsqltutor Posted on 12-02-2009 10:29 PM

The IP address. e.g.

If you don't know, 3306 is the default mysql port.

By: Bright-Tutorials Posted on 12-21-2009 8:42 PM Real awesome tutorial, between this one and the one at I was able to understand some basic php code!

By: Bright-Tutorials Posted on 12-21-2009 9:21 PM Great tutorial. I really appreciate it. This tutorial and the ones over at really helped me with php and mysql. Thanks!

By: zeroge Posted on 01-01-2010 4:45 AM

Great tutorial and great idea

just in my way I get an error

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'me'@'here' (using password: NO) in /home/bla/bal/balla/opendb.php on line 3

Unable to select database

Where "balla" is the password protected directory. Trying to open the directory itself by typing simply the URL like htt:// I will be prompted for providing a username and password, though the directory seems to work.

Why is it I get then this error when trying to call the page that hosts the "includes" ?

Thanks a lot

By: Ivan Posted on 05-13-2010 5:12 AM I'm new to PHP, hope someone can give me a hand : )

I can't connect to MySQL, IE prompted me "HTTP 500" can't display the web page.

By following the instructions from a PHP-MySQL book, I did the followings:

I installed Apache 2.2.15, PHP 5.3.2, MySQL 5.1.45.

Created directory c:\Program Files\PHP\extensions, and have libmysql.dll and php_mysqli.dll saved inside.

In c:\windows\system32, libmysql.dll was included.

In c:\Program Files\PHP\php.ini, two lines were included:

extension_dir = “c:\Program Files\PHP\extensions


my connection.php file saved in c:\Program Files\Apache Software Foundation\Apache2.2\htdocs, and called from localhost/connection.php

Any things else I still missed?

thanks all.

View All