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

Mysql数据库链接代码

function dbConnect($hostname,$username,$pass,$db_name,$pconnect	=0)
{
    $func=empty($pconnect) ? ‘mysql_connect‘:‘mysql_pconnect‘;

    if(!$connect){
        [email protected]$func($hostname,$username,$pass) or die("<font size=‘2‘>Mysql_Error : ".mysql_error()."<br>Mysql Error Num : ".mysql_errno()."</font>");
                 }

    @mysql_select_db($db_name,$connect) or die("<font size=‘2‘> Mysql_Error : ".mysql_error()."<br>Mysql Error Num : ".mysql_errno()."</font>");

    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数据库查询代码

function query_error($query)
{
    global	$connect;
    $temp_bar	=	"<br>=============================================================================<br>";
    $result	=	mysql_query($query,	$connect) or die("DB ERROR <br>".$temp_bar."<font size=‘2‘> Mysql_Query : ".$query."<br> Mysql_Error : ".mysql_error()."<br> Mysql Error Num : ".mysql_errno()."</font>".$temp_bar);
    return	$result;
}

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

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

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()那样)。

报错信息函数代码

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	"<script language=‘javascript‘>alert(‘$str‘);$url;</script>";
    }
    else{
        echo	"<script language=‘javascript‘>$url;</script>";
    }
    exit;
}

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

调用说明

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

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

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

总结:

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

时间: 2024-10-28 09:11:29

Mysql数据库连接、查询、记录集操作代码的相关文章

Mysql数据库连接查询

Mysql数据库连接查询 连接是关系数据库模型的主要特点.连接查询是关系数据库中最主要的查询,主要包括内连接.外连接等.通过连接运算可以实现多个表查询.当查询数据时,通过连接操作查询出存放在多个表中的不同实体信息.当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查询.如下将介绍多表之间的内连接查询.外连接查询以及复合条件连接查询. 内连接查询 内连接(inner join)使用比较运算符进行表间列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,并组合成新的记录.

mysql 的一些记录的操作

①:删除表记录 用delete删除记录 DELETE 语句有如下格式: DELETE FROM tbl_name WHERE 要删除的记录 WHERE 子句指定哪些记录应该删除.它是可选的,但是如果不选的话,将会删除所有的记录.这意味 着最简单的 DELETE 语句也是最危险的. 这个查询将清除表中的所有内容.一定要当心! 为了删除特定的记录,可用 WHERE 子句来选择所要删除的记录.这类似于 SELECT 语句中的 WHERE 子句. mysql> delete from pet where

Eclipse中java获得mysql的查询结果集

不废话,先上代码,再上解释说明 1 package com.ningmeng; 2 3 import java.sql.*; 4 /** 5 * 1:获取查询结果集 6 * @author biexiansheng 7 * 8 */ 9 public class Test03 { 10 11 public static void main(String[] args) { 12 try { 13 Class.forName("com.mysql.jdbc.Driver"); 14 Sy

CI生成查询记录集result(),row(),row_array().....

result() 该方法执行成功返回一个对象数组,失败则返回一个空数组. 一般情况下,我们使用下面的方法遍历结果,代码就像这样: $query = $this->db->query("要执行的 SQL"); foreach ($query->result() as $row){   echo $row->title;   echo $row->name;   echo $row->body;} 本函数的别名是 result_object(). 如果当

mysql 慢查询记录方法

========================================================= 方法一: 这个方法我正在用,呵呵,比较喜欢这种即时性的. Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来. mysql> show variables like 'long%';     注:这个long_query_time是用来定义慢于多少秒的才算“慢查询”+-----------------+-----------+| Variable_name   |

mysql随机查询记录的高效率方法

mysql使用rand随机查询记录的高效率方法 一直以为mysql随机查询几条数据,就用 SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低. You cannot use a column with RAND() values in an ORDER BY clause

MYSQL获得查询记录的行号

对于获得查询记录的行号这一功能,Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的ROWNUM,MS SQL Server 则在 2005 版本中提供了ROW_NUMBER()函数.但在 MySQL 中似乎还没有这样的系统自带功能 = =!真是悲剧啊~ 好在民间的力量总是强大的,我们可以自己构造一个类似的功能! 表 a: UID Money 2 444 1 222 3 555 4 6666 想要以Money排序取得排行号:SQL文如下: Select UID,(@rowNum:

mysql基础(附具体操作代码)

# 注释内容 -- 注释内容 -- 创建数据库 king CREATE DATABASE king; -- 查看当前服务器下有哪些数据库 SHOW DATABASES; SHOW SCHEMAS; -- 查看king数据库的详细信息 SHOW CREATE DATABASE king; -- 创建数据库queen 并且指定编码方式为gbk CREATE DATABASE IF NOT EXISTS queen DEFAULT CHARACTER SET 'GBK'; -- 查看当前服务器下全部的

mysql对表中记录的操作

增:插入记录 CREATE table employee_new( id INT PRIMARY KEY auto_increment, name VARCHAR(20) NOT NULL UNIQUE , birthday VARCHAR(20), salary FLOAT(7,2) )CHARACTER SET utf8; INSERT INTO employee_new(name, birthday, salary) VALUES ('yuan','1990-09-09',9000), (