《PHP编程最快明白》第六讲:Mysql数据库操作

  答案就是做成一个类--数据库类就产生了。通过对函数的二次封装,实现了非常好的重用。要用的时候再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位的密文,是没有解密函数的,可以实现简单的加密功能。

  ?>