在写程序的过程中,有些不错的代码片段总是事半功倍的。这些积累好了的代码片段或者第三方控件,用起来非常的顺手并且高效,不断的积累也能成为自己的类库。
这是我最近经常用到的一个php的连接数据库类,感觉非常不错。拿来和大家分享一下。里面还有些高深的php配合mysql的函数没有封装进来,如果你拿去修改成更好了,也希望能分享给我们,呵呵。
php4代码
[codes=php]
/*
*主要用于执行数据库查询,数据库内容分页
*支持现在常用的分页风格
*具体使用请看实例
*/
$dbhost="localhost";
$dbuser="root";
$dbpw="";
$dbname="one";
Class DB {
function DB($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0)
{
$this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
}
function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0)
{
$pconnect==0 ? @mysql_connect($dbhost, $dbuser, $dbpw) : @mysql_pconnect($dbhost, $dbuser, $dbpw);
mysql_errno()!=0 && $this->halt("连接到数据库($pconnect)失败,主机名:$dbhost 用户名:$dbuser");
if($this->server_info() > '4.1')
{
mysql_query("SET NAMES utf8");
echo $charset;
}
if($this->server_info() > '5.0')
{
mysql_query("SET sql_mode=''");
}
if($dbname)
{
if (!@mysql_select_db($dbname))
{
$this->halt('不能使用 '.$dbname.' 数据库,请确认数据库名存在');
}
}
}
function close()
{
return mysql_close();
}
function select_db($dbname)
{
if (!@mysql_select_db($dbname))
{
$this->halt('不能使用 '.$dbname.' 数据库,请确认数据库名存在');
}
}
function server_info()
{
return mysql_get_server_info();
}
function query($SQL,$method='')
{
if($method=='once' && function_exists('mysql_unbuffered_query'))
{
$query = mysql_unbuffered_query($SQL);
}
else
{
$query = mysql_query($SQL);
}
if (!$query) $this->halt('数据库执行错误: ' . $SQL);
return $query;
}
function get_one($SQL)
{
$query=$this->query($SQL,'once');
$rs =& mysql_fetch_array($query, MYSQL_ASSOC);
return $rs;
}
function fetch_array($query, $result_type = MYSQL_ASSOC)
{
return mysql_fetch_array($query, $result_type);
}
function affected_rows()
{
return mysql_affected_rows();
}
function num_rows($query)
{
$rows = mysql_num_rows($query);
return $rows;
}
//释放释放结果内存
function free_result($query)
{
return mysql_free_result($query);
}
//返回上一次insert的ID
function insert_id()
{
$id = mysql_insert_id();
return $id;
}
function halt($msg='')
{
require_once('sn_mysql_error.php');
new DB_ERROR($msg);
}
}
?>
[/codes]
PHP4连接数据库类
最新推荐文章于 2024-09-19 19:11:44 发布