Posted in PHP onNovember 01, 2010
答案就是做成一个类--数据库类就产生了。通过对函数的二次封装,实现了非常好的重用。要用的时候再include进去。
在讲PHP数据库之前,先介绍一下Mysql要点:大家可以用phpmyadmin学习数据库操作。
在phpmyadmin里看到编码这一项全部选中文utf-8就对了。
Mysql数据库类型主要是: char(固定空间字符串,多大就是多少个中文字符)、varchar(可变空间字符串,多大就是初始化多少个中文字符)、int(整数多大就是多少位)、float(浮点数)、timestamp(日期,可选建立时自动创建,输出时就已经是格式化过的date)、text(文本)、bool(布尔型)
写sql语句时SUM()可以统计值;order by 'id' DESC LIMIT 10,10等要活用。
在phpmyadmin学一下sql语句增删改查就行了。
实例20 Mysql类
<?php class opmysql{ 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(); } //链接数据库 function init_conn(){ $this->conn=@mysql_connect($this->host,$this->name,$this->pwd); @mysql_select_db($this->dBase,$this->conn); mysql_query("set names utf8"); } //查询结果 function mysql_query_rst($sql){ if($this->conn == ''){ $this->init_conn(); } $this->result = @mysql_query($sql,$this->conn); } //取得查询结果字段数目 function getFieldsNum($sql){ $this->mysql_query_rst($sql); $this->fieldsNum = @mysql_num_fields($this->result); } //取得查询结果行数目 function getRowsNum($sql){ $this->mysql_query_rst($sql); if(mysql_errno() == 0){ return @mysql_num_rows($this->result); }else{ return ''; } } //取得记录数组有索引(单条记录) function getRowsRst($sql){ $this->mysql_query_rst($sql); if(mysql_error() == 0){ $this->rowsRst = mysql_fetch_array($this->result,MYSQL_ASSOC); return $this->rowsRst; }else{ return ''; } } //取得记录数组有索引(多条记录)全部 function getRowsArray($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 ''; } } //更新、删除、添加记录数,返回影响到的行数 function uidRst($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才是带字段索引 function getFields($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 ''; } } //错误信息 function msg_error(){ if(mysql_errno() != 0) { $this->msg = mysql_error(); } return $this->msg; } //释放结果集 function close_rst(){ mysql_free_result($this->result); $this->msg = ''; $this->fieldsNum = 0; $this->rowsNum = 0; $this->filesArray = ''; $this->rowsArray = ''; $this->idsubtitle=''; $this->idusername=''; } //关闭数据库 function close_conn(){ $this->close_rst(); mysql_close($this->conn); $this->conn = ''; } } ?>
实例21 类的使用、密码的md5加密
<?php $conne = new opmysql(); $conne-> getRowsArray($sql); $conne-> close_conn(); $password=”123456一二三四五六”; echo md5($password.”www.kuphp.com”);//输出为32位的密文,是没有解密函数的,可以实现简单的加密功能。 ?>
《PHP编程最快明白》第六讲:Mysql数据库操作
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@