Discuz教程网

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

[复制链接]
authicon dly 发表于 2011-9-1 21:09:17 | 显示全部楼层 |阅读模式
答案就是做成一个类--数据库类就产生了。通过对函数的二次封装,实现了非常好的重用。要用的时候再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类
代码如下:

  1. <?php
  2. class opmysql{
  3. private $host = 'localhost'; //服务器地址
  4. private $name = 'root'; //登录账号
  5. private $pwd = ''; //登录密码
  6. private $dBase = 'a0606123620'; //数据库名称
  7. private $conn = ''; //数据库链接资源
  8. private $result = ''; //结果集
  9. private $msg = ''; //返回结果
  10. private $fields; //返回字段
  11. private $fieldsNum = 0; //返回字段数
  12. private $rowsNum = 0; //返回结果数
  13. private $rowsRst = ''; //返回单条记录的字段数组
  14. private $filesArray = array(); //返回字段数组
  15. private $rowsArray = array(); //返回结果数组
  16. private $idusername=array();
  17. private $idsubtitle=array();
  18. //初始化类
  19. function __construct($host='',$name='',$pwd='',$dBase=''){
  20. if($host != '')
  21. $this->host = $host;
  22. if($name != '')
  23. $this->name = $name;
  24. if($pwd != '')
  25. $this->pwd = $pwd;
  26. if($dBase != '')
  27. $this->dBase = $dBase;
  28. $this->init_conn();
  29. }
  30. //链接数据库
  31. function init_conn(){
  32. $this->conn=@mysql_connect($this->host,$this->name,$this->pwd);
  33. @mysql_select_db($this->dBase,$this->conn);
  34. mysql_query("set names utf8");
  35. }
  36. //查询结果
  37. function mysql_query_rst($sql){
  38. if($this->conn == ''){
  39. $this->init_conn();
  40. }
  41. $this->result = @mysql_query($sql,$this->conn);
  42. }

  43. //取得查询结果字段数目
  44. function getFieldsNum($sql){
  45. $this->mysql_query_rst($sql);
  46. $this->fieldsNum = @mysql_num_fields($this->result);
  47. }
  48. //取得查询结果行数目
  49. function getRowsNum($sql){
  50. $this->mysql_query_rst($sql);
  51. if(mysql_errno() == 0){
  52. return @mysql_num_rows($this->result);
  53. }else{
  54. return '';
  55. }
  56. }
  57. //取得记录数组有索引(单条记录)
  58. function getRowsRst($sql){
  59. $this->mysql_query_rst($sql);
  60. if(mysql_error() == 0){
  61. $this->rowsRst = mysql_fetch_array($this->result,MYSQL_ASSOC);
  62. return $this->rowsRst;
  63. }else{
  64. return '';
  65. }
  66. }
  67. //取得记录数组有索引(多条记录)全部
  68. function getRowsArray($sql){
  69. $this->mysql_query_rst($sql);
  70. if(mysql_errno() == 0){
  71. while($row = mysql_fetch_array($this->result,MYSQL_ASSOC)) {
  72. $this->rowsArray[] = $row;
  73. }
  74. return $this->rowsArray;
  75. }else{
  76. return '';
  77. }
  78. }
  79. //更新、删除、添加记录数,返回影响到的行数
  80. function uidRst($sql){
  81. if($this->conn == ''){
  82. $this->init_conn();
  83. }
  84. @mysql_query($sql);
  85. $this->rowsNum = @mysql_affected_rows();
  86. if(mysql_errno() == 0){
  87. return $this->rowsNum;
  88. }else{
  89. return '';
  90. }
  91. }
  92. //获取对应的字段值,一条数字索引,mysql_array_rows才是带字段索引
  93. function getFields($sql,$fields){
  94. $this->mysql_query_rst($sql);
  95. if(mysql_errno() == 0){
  96. if(mysql_num_rows($this->result) > 0){
  97. $tmpfld = @mysql_fetch_row($this->result);
  98. $this->fields = $tmpfld[$fields];

  99. }
  100. return $this->fields;
  101. }else{
  102. return '';
  103. }
  104. }

  105. //错误信息
  106. function msg_error(){
  107. if(mysql_errno() != 0) {
  108. $this->msg = mysql_error();
  109. }
  110. return $this->msg;
  111. }
  112. //释放结果集
  113. function close_rst(){
  114. mysql_free_result($this->result);
  115. $this->msg = '';
  116. $this->fieldsNum = 0;
  117. $this->rowsNum = 0;
  118. $this->filesArray = '';
  119. $this->rowsArray = '';
  120. $this->idsubtitle='';
  121. $this->idusername='';
  122. }
  123. //关闭数据库
  124. function close_conn(){
  125. $this->close_rst();
  126. mysql_close($this->conn);
  127. $this->conn = '';
  128. }
  129. }
  130. ?>
复制代码




实例21 类的使用、密码的md5加密
代码如下:

  1. <?php
  2. $conne = new opmysql();
  3. $conne-> getRowsArray($sql);
  4. $conne-> close_conn();
  5. $password=”123456一二三四五六”;
  6. echo md5($password.”www.kuphp.com”);//输出为32位的密文,是没有解密函数的,可以实现简单的加密功能。
  7. ?>
复制代码








上一篇:《PHP编程最快明白》第五讲:PHP目录、文件操作
下一篇:PHP 实现强制下载文件代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 03:20

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表