php封装mysql类

  • 1,489
  1. ====简单MySQL类封装====
  2. 目标:
  3. 连接数据库
  4. 发送查询
  5. 对于select型 返回查询数据
  6. 关闭mysql连接
  7. ***/
  8. /*
  9. 思路: 首先得连接,连接就得有参数.
  10. 参数如何传?
  11. 答:
  12. 1可以用配置文件,当网站大了,肯定会有配置文件
  13. 2可以通过构造函数传参
  14. 建议用1,但我们目前,仅仅是写一个简单类
  15. */
  16. class Mysql {
  17.     private $host;
  18.     private $user;
  19.     private $pwd;
  20.     private $dbName;
  21.     private $charset;
  22.     private $conn = null; // 保存连接的资源
  23.     public function __construct() {
  24.         // 应该是在构造方法里,读取配置文件
  25.         // 然后根据配置文件来设置私有属性
  26.         // 此处还没有配置文件,就直接赋值
  27.         $this->host = 'localhost';
  28.         $this->user = 'root';
  29.         $this->pwd = '111111';
  30.         $this->dbName = 'test';
  31.         // 连接
  32.         $this->connect($this->host,$this->user,$this->pwd);
  33.         // 切换库
  34.         $this->switchDb($this->dbName);
  35.         // 设置字符集
  36.         $this->setChar($this->charset);
  37.     }
  38.     // 负责连接
  39.     private function connect($h,$u,$p) {
  40.         $conn = mysql_connect($h,$u,$p);
  41.         $this->conn = $conn;
  42.     }
  43.     // 负责切换数据库,网站大的时候,可能用到不止一个库
  44.     public function switchDb($db) {
  45.         $sql = 'use ' . $db;
  46.         $this->query($sql);
  47.     }
  48.     // 负责设置字符集
  49.     public function setChar($char) {
  50.         $sql = 'set names ' .  $char;
  51.         $this->query($sql);
  52.     }
  53.     // 负责发送sql查询
  54.     public function query($sql) {
  55.         return mysql_query($sql,$this->conn);
  56.     }
  57.     // 负责获取多行多列的select 结果
  58.     public function getAll($sql) {
  59.         $list = array();
  60.         $rs = $this->query($sql);
  61.         if(!$rs) {
  62.             return false;
  63.         }
  64.         while($row = mysql_fetch_assoc($rs)) {
  65.             $list[] = $row;
  66.         }
  67.         return $list;
  68.     }
  69.     // 获取一行的select 结果
  70.     public function getRow($sql) {
  71.         $rs = $this->query($sql);
  72.         if(!$rs) {
  73.             return false;
  74.         }
  75.         return mysql_fetch_assoc($rs);
  76.     }
  77.     // 获取一个单个的值
  78.     public function getOne($sql) {
  79.         $rs = $this->query($sql);
  80.         if(!$rs) {
  81.             return false;
  82.         }
  83.         $row = mysql_fetch_row($rs);
  84.         return $row[0];
  85.     }
  86.     public function close() {
  87.         mysql_close($this->conn);
  88.     }
  89. }
  90. echo '<pre>';
  91. $mysql = new Mysql();
  92. print_r($mysql);
  93. /*
  94. $sql = "insert into stu values (20,'object','99988')";
  95. if($mysql->query($sql)) {
  96.     echo 'query成功';
  97. } else {
  98.     echo '失败';
  99. }
  100. */
  101. echo '<br />';
  102. $sql = 'select * from stu';
  103. $arr = $mysql->getAll($sql);
  104. print_r($arr);
  105. // 查询16号学员
  106. $sql = 'select * from stu where id=16';
  107. print_r($mysql->getRow($sql));
  108. // 查询共有多少个学生
  109. $sql = 'select count(*) from stu';
  110. print_r($mysql->getOne($sql));
  111. /*
  112. 到此,一个简单的mysql封装类,完成.
  113. 改进:
  114. insert update操作,都需要大量拼接字符串.
  115. 能否给定一个数组,数组键->列 ,数组值->列的值
  116. 然后自动生成 insert 语句!
  117. */
weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年6月28日12:48:08
  • 转载请务必保留本文链接:https://www.150643.com/100.html
匿名

发表评论

匿名网友 填写信息