class dbClass { // 开始数据库类
var $username;
var $password;
var $database;
var $hostname;
var $link;
var $result;
$this->username=$username;
$this->password=$password;
$this->database=$database;
$this->hostname=$hostname;
$this->mysql_error=$mysql_error;
}
function connect() { // 这个函数用于连接数据库
$this->link=mysql_connect($this->hostname,$this->username,$this->password) or die("Sorry,can not connect to database");
return $this->link;
}
function select() { // 这个函数用于选择数据库
mysql_select_db($this->database,$this->link);
}
function db_error() {
mysql_error();
}
function query($sql) { // 这个函数用于送出查询语句并返回结果,常用。
if($this->result=mysql_query($sql,$this->link)) return $this->result;
else {
// 这里是显示SQL语句的错误信息,主要是设计阶段用于提示。正式运行阶段可将下面这句注释掉。
if ($this->mysql_error==1) {
echo "SQL语句错误: <font color=red>$sql</font> <BR><BR>错误信息: ".mysql_error();
}
return false;
}
}
以下函数用于从结果取回数组,一般与 while()循环、$db->query($sql) 配合使用,例如:
$result = $db->query("select * from mytable");
while($row=$db->getarray($result)) {
echo $row['id'];
}
*/
function getarray($result) {
return @mysql_fetch_array($result);
}
以下函数用于取得SQL查询的第一行,一般用于查询符合条件的行是否存在,例如:
用户从表单提交的用户名$username、密码$password是否在用户表“user”中,并返回其相应的数组:
if($user=$db->getfirst("select * from user where username='$username' and password='$password' "))
echo "欢迎 $username ,您的ID是 $user[id] 。";
else
echo "用户名或密码错误!";
*/
function getfirst($sql) {
return @mysql_fetch_array($this->query($sql));
}
/*
以下函数返回符合查询条件的总行数,例如用于分页的计算等要用到,例如:
$totlerows=$db->getcount("select * from mytable");
echo "共有 $totlerows 条信息。";
*/
function getcount($sql) {
return @mysql_num_rows($this->query($sql));
}
以下函数用于更新数据库,例如用户更改密码:
$db->update("update user set password='$new_password' where userid='$userid' ");
*/
function update($sql) {
return $this->query($sql);
}
* update_list 用于批量更新
*
* @param 表名 $table
* @param 记录 $record
* @param 条件 $condition
* @param 列表 $list
* @return 影响的记录数
* $db->update_list('Groups', $_POST, $condition, '|GroupName|GroupSort|BlogID');
*/
function update_list($table, $record, $condition, $list, $noescape=1) {
//if (!get_magic_quotes_gpc()) {
if ($noescape==1) { // 转义开关
$record = array_map('mysql_real_escape_string', $record); // 入库前转义
}
//}
$str = '';
$list_ = explode("|",$list);
foreach ($list_ as $l => $m) {
$list__[$m] = $l;
}
foreach ($record as $k => $v) {
if($list__[$k] != "") {
$str .= "`$k`='$v',";
}
}
$str = substr($str, 0, -1);
$sql = "UPDATE $table SET $str WHERE $condition";
return $this->query($sql);
}
以下函数用于向数据库插入一行,例如添加一个用户:
$db->insert("insert into user (userid,username,password) values (null,'$username','$password')");
*/
function insert($sql){
$this->query($sql);
return mysql_insert_id();
}
* insert_list 用于批量增加
*
* @param 表名 $table
* @param 记录 $record
* @param 条件 $condition
* @param 列表 $list
* @return 影响的记录数
* $db->insert_list('Groups', $_POST, '|GroupName|GroupSort|BlogID');
*/
function insert_list($table, $record, $list, $noescape=1) {
//if (!get_magic_quotes_gpc()) {
if ($noescape==1) { // 转义开关
$record = array_map('mysql_real_escape_string', $record); // 入库前转义
}
//}
$str1 = ''; // 记录字段
$str2 = ''; // 记录数值
$list_ = explode("|",$list);
foreach ($list_ as $l => $m) {
$list__[$m] = $l;
}
foreach ($record as $k => $v) {
if($list__[$k] != "") {
$str1 .= "`$k`,";
$str2 .= "'$v',";
}
}
$str1 = '('.substr($str1, 0, -1).')';
$str2 = '('.substr($str2, 0, -1).')';
$sql = "insert into $table $str1 values $str2";
return $this->query($sql);
}
function getid() {
return mysql_insert_id();
}
// 删除
function del($sql) {
return $this->query($sql);
}
}
主要函数就是这些,如果你自己有另外的需要,也可以自己添加上去。
因为凡使用该类的都必须连接数据库,下面就连接并选择好数据库吧:
*/
$db = new dbClass($db_username, $db_password, $db_database, $db_hostname, $mysql_error);
$db->connect();
$db->select();
$serverVersion = str_replace(".","",mysql_get_server_info());
$serverVersion = substr(intval($serverVersion),0,4);
if ($utf8 == 1) {
if ($serverVersion >= 4100) {
$db->query("set NAMES 'UTF8'");
}
}
?>