写一个mysql类PHP_php连mysql的一个简单类

/

//

// MySQL class to access mysql database

//

// write by yu_meat

//

// 出于安全性考虑,所有数据库操作必须由此类进行

//

// 可以由此类派生新类以达到各自的特殊功能,

// 但不推荐直接修改此类(因为这样可能导致别人程序出错)

/

if ( !defined( "_BASE_DB_LAYER" ) ){

define("_BASE_DB_LAYER", 1 );

//这个文件储存数据库存取密码,为安全起见,

//会放到别的安全目录下去(如:非htdocs目录下)

include "db.config.inc.php";

$root_dir = "h:\htdocs";

class db {

var $connect_id;

var $database;

//MySQL数据库类

function db(){

}

function open($database="") {

//为了方便起见和更加快速打开数据库,让我们建立一个持久连接

$this->connect_id=mysql_pconnect(DBHOST, DBUSER, DBPASS);

if ($this->connect_id) {

//成功

$this->database=$database;

return $this->connect_id;

}else{

echo "MISSION IMPOSSIBLE : I cannot open the database!";

return 0;

}

}

function select_db($database){

$this->database=$database;

}

function close() {

// Closes anything that can be closed.

//I find the mysql_pconnect() cannot be closed be mysql_close,

//so this call is 多余的.

// $result=@mysql_close($this->connect_id);

// return $result;

}

};//END db class

//MySQL数据库查询类

//

//row成员变量包含一列查询结果的联合数组,

//可直接使用,但推荐使用我的field函数:)

class query {

var $result;

var $row;

//构造函数,使用时必须先初始化一个db类,并作为参数传入

function query(&$db, $query="", $database="") {

if($database!=""){

$db->select_db($database);

}

if($query!="" && $db->database!=""){

$this->result=@mysql_db_query($db->database, $query, $db->connect_id);

return $this->result;

}

}

//得到一条新的记录

//如果没有更多结果返回FALSE

function getrow() {

$this->row=@mysql_fetch_array($this->result);

return $this->row;

}

//得到返回记录集的记录数

//ORACLE实现这个好痛苦,我最少写了23行代码!

function numrows() {

$result=@mysql_num_rows($this->result);

return $result;

}

//得到最后一个错误

function error() {

$result=@mysql_error();

return $result;

}

//得到最后一次操作收到影响的列数

function affectnum(){

$result=@mysql_affected_rows();

return $result;

}

//得到指定域$field的结果,如果$row参数为空,

//返回当前记录的此域结果,否则是指定行的此域结果

//

//返回0表示要求不合法

function field($field, $row=-1) {

if($row!=-1){

$result=@mysql_result($this->result, $row, $field);

}else{

$result=$this->row[$field];

}

if(isset($result)){

return $result;

}else{

return '0';

}

}

//呵呵,把当前记录集指针返回第一项,ORACLE好像没有此功能吧?

function firstrow() {

$result=@mysql_data_seek($this->result,0);

if($result){

$result=$this->getrow();

return $this->row;

}else{

return 0;

}

}

//移动记录集指针到指定位置,

//呜呜,刚从ORACLE中解脱出来的我,

//看到这个功能简直感动的痛哭流涕

function seek($row){

@mysql_data_seek($this->result, $row);

}

//释放占用资源,PHP的类不用析构函数的说

function free() {

return @mysql_free_result($this->result);

}

function select_rows(){

$result=@mysql_num_rows($this->result);

if($result){

return $result;

}else{

return 0;

}

}

function get_last_insert(&$db){

return @mysql_insert_id($db->connect_id);

}

}; // End query class

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值