建立PHP与MySQL数据库的连接

来源:互联网 发布:蜂群优化算法 编辑:程序博客网 时间:2024/05/01 21:11
建立PHP与MySQL数据库的连接
http://www.csai.cn 作者:PHP网络编程典型模块 来源:希赛网 2008年2月14日 发表评论 进入社区
    ——此文章摘自《PHP网络编程典型模块与实例精讲》定价:¥55.00 特价:¥41.25  详细>>

    获取到用户输入的信息后,就该把这些信息记录到数据库中。不过在此之前,需要先建立PHP与MySQL数据库的连接。

    在PHP中要建立与MySQL数据库的连接,需要使用mysqli构造函数,其调用原型是:
    class mysqli {
        __construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )
    }

    参数host指出MySQL数据库服务器,一般用IP地址(也可以是主机名,如localhost)指出服务器所在的机器。参数username和password分别指定连接时使用的用户名和密码。参数dbname指定当前连接要使用的数据库。默认情况下,PHP将连接到服务器的3306端口,开发人员可以通过参数port指定使用其他的端口号。参数socket较为少用,它可以进一步指定所用的套接字或命名管道。

    在调用mysqli构造函数之后,应当调用mysqli_connect_errno()函数检查数据库连接是否建立成功,该函数原型是:
    int mysqli_connect_errno ( void )

    该函数返回的是最后一次建立连接时产生的错误代码,如果成功则返回0,返回其他值说明产生了某种类型的错误。调用mysqli_connect_error()函数可以获得具体的错误信息。

    另外,如果在建立数据库连接时没有指定dbname参数,则还必须调用类mysqli的成员函数select_db(),以指定使用数据库服务器的哪一个数据库。该函数的原型是:
    bool select_db ( string database_name)

    调用如果成功返回TRUE,失败返回FALSE。参数database_name指定要使用的数据库名称。

    当操作完数据库后,还要调用类mysqli的成员函数close()来关闭之前打开的数据库连接,从而释放连接资源。虽然在PHP脚本执行完毕时,PHP会自动关闭数据库连接,但是及时关闭数据库连接是一个更好的编程习惯。

    本例中,连接并使用数据库的代码如下:
    // 调用mysqli的构造函数建立连接,同时选择使用数据库'test'
    $db = @new mysqli("127.0.0.1", "developer", "123456", "test");
    // 检查数据库连接
    if (mysqli_connect_errno()) {
        echo "数据库连接失败!<br>/n";
        echo mysqli_connect_error();
        exit;   // 退出程序,后面的所有语句将不再执行
    }
    printf("Host information: %s <br/><br/>/n", $db->host_info);
    //...... 一些操作数据库数据的语句
    // 关闭数据库连接
    $db->close();

    到此为止,就已经建立好了一个操作数据库的PHP程序框架。

    应当说明的是,PHP5的MySQL库提供了两套操作数据库的方法,一种是面向对象方式的,另一种是面向过程方式的。面向对象的方法是较先进的也是本书主要使用的方法。

    这两种方式使用时的区别在于,面向对象方式调用的是类mysqli的成员函数,要使用类变量来调用,而不需要另外指定数据库连接资源;面向过程方式调用的是全局函数,要多指定一个数据库连接资源的参数。另外这两者除了连接数据库的方法外,其他功能的函数名是对应的,差别在于面向对象方式的成员函数没有“mysqli_”前缀。如面向对象方法使用$db->select_db(string dbname)来指定数据库,而面向过程方法使用mysqli_select_db (mysqli link, string dbname)来指定数据库(注意,粗体部分标出了二者的区别)。面向过程方法的函数中的参数mysqli link通过mysqli_connect()函数调用来获得,该函数的参数与mysqli的构造函数的参数完全相同;不同的是, mysqli_connect()成功时返回连接资源,失败时返回布尔值FALSE。

    使用面向过程的方法连接数据库的例子参见第1章的1.3.3节。注意:PHP5之前的版本只支持面向过程的数据库操作方法。     

    如果用同样的参数第二次调用 mysqli_connect(),将不会建立新连接,而是返回已经打开的连接标识。

 
原创粉丝点击