答案就是做成一个类--数据库类就产生了。通过对函数的二次封装,实现了非常好的重用。要用的时候再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编程最快明白》第五讲:PHP目录、文件操作下一篇: PHP 实现强制下载文件代码
|