Home  >  Article  >  php教程  >  PHP实现Mysql数据库连接、查询、记录集操作代码实例

PHP实现Mysql数据库连接、查询、记录集操作代码实例

WBOY
WBOYOriginal
2016-06-21 08:53:381371browse

  在PHP网站开发中,经常需要对Mysql数据库进行操作,大体上需要经过以下几个步骤:Mysql数据库链接、Mysql数据库查询、Mysql记录集操作等,如果每次都重复上述操作,不但繁琐,而且代码冗余度高,对此我整理了部分利用PHP实现Mysql数据库操作的代码,以函数的形式贴出,可根据自行需要添加其他功能或者整合成Mysql数据库类。

Mysql数据库链接代码

1
2
3
4
5
6
7
8
9
10
11
12

function dbConnect($hostname,$username,$pass,$db_name,$pconnect = 0)
{
    $func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect';
   
    if(!$connect) {
        $connect = @$func($hostname,$username,$pass) or die("Mysql_Error : ".mysql_error()."
Mysql Error Num : "
.mysql_errno()."");
    }
   
    @mysql_select_db($db_name, $connect) or die(" Mysql_Error : ".mysql_error()."
Mysql Error Num : "
.mysql_errno()."");

    return $connect;
}

注释

参数$hostname,$username,$pass,$db_name分别代表Mysql数据库服务器地址,用户名,密码,以及连接的数据库名,通常情况下hostname一般都是localhost或者127.0.0.1。参数$pconnect默认为0,表示通常情况下是以mysql_connect函数连接Mysql数据库。

知识点

mysql_connect与mysql_pconnect的区别:当执行完当前PHP程序后,PHP自动关闭mysql_connect建立的数据库连接,而mysql_pconnect返回一个持久稳固的数据库连接,在一定时间内有下一个连接请求时可以被复用,节省了反复连接Mysql数据库的时间,使得访问速度加快,其适用于并发访问量不大的情况,如并发访问量比较大,则可能会因为Mysql已达到最大连接数, 使之后的请求得不到满足。

mysql_error函数:返回上一个Mysql操作产生的文本错误信息。mysql_errno函数返回上一个Mysql操作中的错误号码,如果没有出错则返回0。

Mysql数据库查询代码

1
2
3
4
5
6
7

function query_error($query)
{
    global $connect;
    $temp_bar = "
=============================================================================
"
;
    $result = mysql_query($query, $connect) or die("DB ERROR
"
.$temp_bar." Mysql_Query : ".$query."
Mysql_Error : "
.mysql_error()."
Mysql Error Num : "
.mysql_errno()."".$temp_bar);
    return $result;
}

注释:此函数为Mysql数据库查询函数,等于同mysql_query函数的功能,如果出错则输出出错信息(SQL语句),其实为了防止暴露网站数据库的结构,正式商用时,最好不要输出SQL执行语句。

Mysql记录集操作函数代码(mysql_fetch_array)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

function fetch_array($result,$result_type = MYSQL_ASSOC,$records = "one")
{
    if ($records == "one") {
        return @mysql_fetch_array($result,$result_type);
    }
    else {
        for ($i=0;num_rows($result);$i++)
        {
            $info[$i] = @mysql_fetch_array($result,$result_type);
        }
       
        free_result($result);
       
        return $info;
    }
}

注释:此函数的功能由mysql_fetch_array函数延生而来,在此基础上我增加了对Mysql数据库记录集的读取功能,并以数组形式返回获取的值。

知识点

mysql_fetch_array函数是mysql_fetch_row函数的扩展版本。第二个参数 result_type有三个值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。默认值是 MYSQL_BOTH。MYSQL_BOTH:得到一个同时包含关联和数字索引的数组。MYSQL_ASSOC:只得到关联索引(如同mysql_fetch_assoc()那样),MYSQL_NUM :得到数字索引(如同 mysql_fetch_row()那样)。

报错信息函数代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

function error_msg($msg, $url= "")
{
    global $connect;

    if($connect) {
        mysql_close($connect);
    }

    switch ($url)
    {
        case "":
            $url = "history.go(-1)";
            break;
        case "close":
            $url = "window.close()";
            break;
        default:
            $url = "document.location.href = '$url'";
            break; 
    }
   
    if (!empty($msg)) {
        echo "');$url;";
    }
    else{
        echo ";";
    }
    exit;
}

注释:此函数的功能主要以alert的形式报错并进行页面跳转,是一个通用函数,报错或跳转之前其会先将Mysql数据库连接关闭,用到了mysql_close函数。

调用说明

从上述Mysql数据库操作的函数代码中,我们可以看到$connect变量是一个全局变量,首先将上述几个函数放入一个文件,如mysqlconnect.php中,然后在声明相关变量并赋值,在dbConnect函数声明后调用此Mysql数据库连接函数,即:

1
2
3
4
5
6

$hostname = "mysqlserveraddr";
$username = "yourusername";
$pass = "youruserpass";
$db_name = "yourdatabase";

$connect = dbConnect($hostname,$username,$pass,$db_name);

总结

  通过上面几个Mysql数据库连接、数据库查询、数据库记录集操作函数代码的讲解,在PHP网站开发中Mysql数据库操作的基本函数已包括,根据需要可在此代码基础上改成Mysql数据库类或者利用PHP添加其他的Mysql数据库操作函数都是可行的。

  :PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn