mysql 数据库连接类_Mysql 数据库访问类

Mysql 数据库访问类

更新时间:2009年02月15日 18:27:37   作者:

Mysql数据库访问类 实现代码,对于想学习mysql操作类的朋友值得一看

/**

* @Purpose: Mysql数据库访问类

* @Package:

* @Author: lisen@sellingclub.cn

* @Modifications:

* @See:

* @Time: 2008.10.10

*/

class DB_MYSQL

{

//============================================================

private $Host = 'localhost';

private $Database = 'db_name';

private $User = 'user';

private $Password = 'password';

//============================================================

private $Link_Id = 0; //数据库连接

private $Query_Id = 0; //查询结果

private $Row_Result = array(); //结果集组成的数组

private $Field_Result = array(); //结果集字段组成的数组

private $Affected_Rows; //影响的行数

private $Rows; //结果集中记录的行数

private $Fields; //结果集中字段数

private $Row_Postion = 0; //记录指针位置索引

public $Insert_Id = 0;

//************************************************************

/**** 构造函数 ****/

function __construct()

{

$this->connect();

}

/**** 析构函数 ****/

function __destruct()

{

@mysql_free_result($this->Query_Id);

mysql_close($this->Link_Id);

}

/**** 连接服务器,选择数据库 ****/

function connect($Database = '',$Host = '',$User = '',$Password = '')

{

$Database = $Database == '' ? $this->Database : $Database;

$Host = $Host == '' ? $this->Host : $Host;

$User = $User == '' ? $this->User : $User;

$Password = $Password == '' ? $this->Password : $Password;

//-----------------------------------------------------------//

if(0 == $this->Link_Id)

{

$this->Link_Id = @mysql_pconnect($Host,$User,$Password);

if(!$this->Link_Id)

{

$this->halt('连接数据库服务端失败!');

}

if(!mysql_select_db($this->Database,$this->Link_Id))

{

$this->halt('不能打开指定的数据库:'.$this->Database);

}

}

return $this->Link_Id;

}

/**** 释放内存 ****/

function free()

{

if(@mysql_free_result($this->Query_Id))

{

unset($this->Row_Result);

}

$this->Query_Id = 0;

}

/**** 执行查询 ****/

function query($Query_String)

{

//释放上次查询内存

if($this->Query_Id)

{

$this->free();

}

if(0 == $this->Link_Id)

{

$this->connect();

}

//设置中文字符集

@mysql_query('set names gb2312');

$this->Query_Id = mysql_query($Query_String,$this->Link_Id);

$this->Insert_Id = mysql_insert_id();

if(!$this->Query_Id)

{

$this->halt('SQL查询语句出错:'.$Query_String);

}

@mysql_query('set names gb2312');

return $this->Query_Id;

}

/**** 将结果集指针指向指定行 ****/

function seek($pos)

{

if(@mysql_data_seek($this->Query_Id,$pos))

{

$this->Row_Position = $pos;

return true;

}

else

{

$this->halt('定位结果集发生错误!');

return false;

}

}

/**** 返回结果集组成的数组 ****/

function get_rows_array()

{

$this->get_rows();

for($i = 0; $i < $this->Rows; $i++)

{

if(!mysql_data_seek($this->Query_Id,$i))

{

$this->halt('mysql_data_seek 查询出错!');

}

$this->Row_Result[$i] = mysql_fetch_array($this->Query_Id);

}

return $this->Row_Result;

}

/**** 返回结果集字段组成的数组 ****/

function get_fields_array()

{

$this->get_fields();

for($i = 0; $i < $this->Fields; $i++)

{

$obj = mysql_fetch_field($this->Query_Id,$i);

$this->Field_Result[$i] = $obj->name;

}

return $this->Field_Result;

}

/**** 返回影响记录数 ****/

function get_affected_rows()

{

$this->Affected_Rows = mysql_affected_rows($this->Link_Id);

return $this->Affected_Rows;

}

/**** 返回结果集中的记录数 ****/

function get_rows()

{

$this->Rows = mysql_num_rows($this->Query_Id);

return $this->Rows;

}

/**** 返回结果集中的字段个数 ****/

function get_fields()

{

$this->Fields = mysql_num_fields($this->Query_Id);

return $this->Fields;

}

/**** 执行sql语句并返回由查询结果中第一行记录组成的数组 ****/

function fetch_one_array($sql)

{ @mysql_query('set names gb2312');

$this->query($sql);

return mysql_fetch_array($this->Query_Id);

}

/**** 打印错误信息 ****/

function halt($msg)

{

$this->Error = mysql_error();

printf(" 数据库发生错误: %s \n",$msg);

printf("MySQL 返回错误信息: %s \n",$this->Error);

printf("错误页面:%s \n",$_SERVER['PHP_SELF']);

printf(" 请将错误信息提交到系统管理员或网站程序员处理! \n");

die('脚本终止');

}

}

相关文章

1a1b05c64693fbf380aa1344a7812747.png

这篇文章主要介绍了MySQL数据库入门之多实例配置方法,结合实例形式分析了MySQL数据库多实例配置相关概念、原理、操作方法与注意事项,需要的朋友可以参考下2020-05-05

4f55910a645b073bc4fc65dc10dc14bd.png

这篇文章主要介绍了php mysql访问数据库的步骤详解的相关资料,需要的朋友可以参考下2016-10-10

0ea3c7666119d5615e582f823fb3fad6.png

这篇文章主要为大家详细介绍了mysql 8.0.18.zip安装配置方法图文教程,以及卸载以前数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2019-10-10

4f96a78db829b1556ff16de21e013c7a.png

在网上也看到过另外的几种方法,比如说预处理SQL,比如说批量提交。那么这些方法的性能到底如何?本文就会对这些方法做一个比较2017-07-07

8cc1031babc6aff2319f1c6af8544aa0.png

本文介绍主要介绍在mysql中使用in语句时,查询效率非常慢,这里分享下我的解决方法,供朋友们参考。2017-10-10

0c932a99bb7b6f23c937db507070cc7b.png

这篇文章主要为大家详细介绍了CentOS6.4上使用yum安装mysql图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-10-10

cca732bf65a93ed2ec0ac80c638460fe.png

这数据库应用是一个应用系统不可或缺的部分,关系型数据库应用大同小异,这里选择MySQL作为数据库平台。下面通过本文给大家介绍关于Win10下MySQL5.7.17免安装版基本配置教程(图文详解),需要的朋友可以参考下2017-06-06

2d9f31f2af7b675a3d153d2b7f1035a7.png

这篇文章主要给大家介绍了关于对mysql语句进行监控的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-07-07

b452cee8ec5cd9e58ab98eba17281e59.png

Windows XP系统、xampp集成环境如何重置mysql密码,接下来为大家详细介绍下,感兴趣的各位可以参考下哈,希望可以帮助到你们2013-03-03

f4838ec7e2d4da28e0b57d4e852dadd4.png

在编写MySQL存储过程的过程中,我们会时不时地需要对某些存储过程进行优化,其目的是确保代码的可读性、正确性及运行性能。本文以作者实际工作为背景,介绍了对某一个MySQL存储过程优化的整个过程。2016-07-07

最新评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值