<?php
/**
*mysql数据库类
* leninx 2013.5
*/

class DbMysql
{
public $link;
public $result;

function __construct()
{
}

/*
*连接数据库
*/
public function connect($dbname,$dbpassword,$dbdatabase,$dbhost='localhost',$dbcharset='UTF8')
{
if(!$this->link) {
$this->link = mysql_connect($dbhost, $dbname, $dbpassword) or die(mysql_error());
$dbVersion = mysql_get_server_info($this->link);
//设置字符集
mysql_set_charset($dbcharset,$this->link) or die("can not set charset");
if($dbVersion >'5.0.1'){
mysql_query("SET sql_mode=''",$this->link);
mysql_query("SET character_set_connection=".$dbcharset.", character_set_results=".$dbcharset.", character_set_client=binary", $this->link);
//为了防止采集等需要较长运行时间的程序超时,在运行这类程序时设置系统等待和交互时间
// @mysql_query("SET interactive_timeout=3600, wait_timeout=3600 ;",$link);
}
mysql_select_db($dbdatabase, $this->link) or die("can not select datebase");
}
return $this->link;
}

/*
*执行查询
*/
public function query($sql)
{
if(!$this->link ) return false;
if($this->result) {
$this->free();
}
if($this->result = mysql_query($sql, $this->link)) {
return $this->result;
//return $this;
}else{
return false;
}
}

/*
*执行查询2
*/
public function queryd($sql)
{
return mysql_query($sql,$this->link);
}

/*
* 执行写入语句
*/
public function execute($sql)
{
if(!$this->link ) return false;
if($this->result) {
$this->free();
}
$result = mysql_query($sql, $this->link);
if($result == false) {
trigger_error('MySQL execute error: ' . mysql_error() . ' ['.$sql.']');
}
}

/*
*取得所有数据
*/
public function fetchAll($result_type = MYSQL_ASSOC)
{
$data = null;
//$query = $this->query($sql);
while($row = mysql_fetch_array($this->result, $result_type)){
$data[] = $row;
}
mysql_data_seek($this->result, 0);// 移动内部结果的指针从0行开始。
//mysql_free_result($result);
return $data;
}

/*
* 取得一行数据
*/
public function fetchArray($type=MYSQL_ASSOC)
{
return mysql_fetch_array($this->result,$type);
}

/*
*取得一行另一种用法,在递归时用等
*/
public function fetchRow($result,$type=MYSQL_ASSOC)
{
return mysql_fetch_array($result,$type);
}

/*
*对象形式取得一行数据
*/
public function fetchObject()
{
return mysql_fetch_object($this->result);
}

/*
*返回记录行数
*/
public function numRows()
{
return mysql_num_rows($this->result);
}

/*
*上一次操作的影响数
*/
public function affectedRows()
{
return mysql_affected_rows($this->link);
}
/*
* 取得最后一次插入记录的ID值
* @return int 返回最后一次插入记录的ID值
*/
public function insertId()
{
return ($id = mysql_insert_id($this->link)) >= 0 ? $id : mysql_result($this->query("SELECT last_insert_id()"), 0);
}

/*
*获取错误信息
*/
public function error()
{
return (($this->link) ? mysql_error($this->link) : mysql_error());
}

/*
*获取错误代码
*/
public function errno()
{
return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
}

/*
*释放结果集
*/
public function free()
{
mysql_free_result($this->result);
}

/*
*转义字符
*/
public function escape($str)
{
return mysql_real_escape_string($str,$this->link);
}

/*
*关闭数据库连接
*/
public function close()
{
return @mysql_close($this->link);
}

/*
*析构
*/
function __destruct()
{
$this->free();
$this->close();
}
}
?>

最后更新于 2018年1月22日

我写的MySql类
标签: