如果一行代码搞不定你要的功能,该怎么办?
答案就是做成一个类--数据库类就产生了。通过对函数的二次封装,实现了非常好的重用。要用的时候再include进去。
在讲PHP数据库之前,先介绍一下Mysql要点:大家可以用phpmyadmin学习数据库操作。
在phpmyadmin里看到编码这一项全部选中文utf-8就对了。
Mysql数据库类型主要是:char(固定空间字符串,多大就是多少个中文字符)、varchar(可变空间字符串,多大就是初始化多少个中文字符)、int(整数多大就是多少位)、float(浮点数)、timestamp(日期,可选建立时自动创建,输出时就已经是格式化过的date)、text(文本)、bool(布尔型)
写sql语句时SUM()可以统计值;orderby'id'DESCLIMIT10,10等要活用。
在phpmyadmin学一下sql语句增删改查就行了。
实例20Mysql类
代码如下:
<?php
classopmysql{
private$host='localhost';//服务器地址
private$name='root';//登录账号
private$pwd='';//登录密码
private$dBase='a0606123620';//数据库名称
private$conn='';//数据库链接资源
private$result='';//结果集
private$msg='';//返回结果
private$fields;//返回字段
private$fieldsNum=0;//返回字段数
private$rowsNum=0;//返回结果数
private$rowsRst='';//返回单条记录的字段数组
private$filesArray=array();//返回字段数组
private$rowsArray=array();//返回结果数组
private$idusername=array();
private$idsubtitle=array();
//初始化类
function__construct($host='',$name='',$pwd='',$dBase=''){
if($host!='')
$this->host=$host;
if($name!='')
$this->name=$name;
if($pwd!='')
$this->pwd=$pwd;
if($dBase!='')
$this->dBase=$dBase;
$this->init_conn();
}
//链接数据库
functioninit_conn(){
$this->conn=@mysql_connect($this->host,$this->name,$this->pwd);
@mysql_select_db($this->dBase,$this->conn);
mysql_query("setnamesutf8");
}
//查询结果
functionmysql_query_rst($sql){
if($this->conn==''){
$this->init_conn();
}
$this->result=@mysql_query($sql,$this->conn);
}
//取得查询结果字段数目
functiongetFieldsNum($sql){
$this->mysql_query_rst($sql);
$this->fieldsNum=@mysql_num_fields($this->result);
}
//取得查询结果行数目
functiongetRowsNum($sql){
$this->mysql_query_rst($sql);
if(mysql_errno()==0){
return@mysql_num_rows($this->result);
}else{
return'';
}
}
//取得记录数组有索引(单条记录)
functiongetRowsRst($sql){
$this->mysql_query_rst($sql);
if(mysql_error()==0){
$this->rowsRst=mysql_fetch_array($this->result,MYSQL_ASSOC);
return$this->rowsRst;
}else{
return'';
}
}
//取得记录数组有索引(多条记录)全部
functiongetRowsArray($sql){
$this->mysql_query_rst($sql);
if(mysql_errno()==0){
while($row=mysql_fetch_array($this->result,MYSQL_ASSOC)){
$this->rowsArray[]=$row;
}
return$this->rowsArray;
}else{
return'';
}
}
//更新、删除、添加记录数,返回影响到的行数
functionuidRst($sql){
if($this->conn==''){
$this->init_conn();
}
@mysql_query($sql);
$this->rowsNum=@mysql_affected_rows();
if(mysql_errno()==0){
return$this->rowsNum;
}else{
return'';
}
}
//获取对应的字段值,一条数字索引,mysql_array_rows才是带字段索引
functiongetFields($sql,$fields){
$this->mysql_query_rst($sql);
if(mysql_errno()==0){
if(mysql_num_rows($this->result)>0){
$tmpfld=@mysql_fetch_row($this->result);
$this->fields=$tmpfld[$fields];
}
return$this->fields;
}else{
return'';
}
}
//错误信息
functionmsg_error(){
if(mysql_errno()!=0){
$this->msg=mysql_error();
}
return$this->msg;
}
//释放结果集
functionclose_rst(){
mysql_free_result($this->result);
$this->msg='';
$this->fieldsNum=0;
$this->rowsNum=0;
$this->filesArray='';
$this->rowsArray='';
$this->idsubtitle='';
$this->idusername='';
}
//关闭数据库
functionclose_conn(){
$this->close_rst();
mysql_close($this->conn);
$this->conn='';
}
}
?>
实例21类的使用、密码的md5加密
代码如下:
<?php
$conne=newopmysql();
$conne->getRowsArray($sql);
$conne->close_conn();
$password=”123456一二三四五六”;
echomd5($password.”www.***.com”);//输出为32位的密文,是没有解密函数的,可以实现简单的加密功能。
?>
更多信息请查看IT技术专栏