PHP基础封装简单的MysqliHelper类
MysqliHelper.class.php
1: <?php
2:
3: /**
4: * MysqliHelper
5: * [面向对象的MysqliHelper的简单封装]
6: */
7: class MysqliHelper
8: {
9: private static $mysqli;
10: private static $host='localhost';
11: private static $uid='root';
12: private static $pwd='1234';
13: private static $dbName='test2';
14:
15: /**
16: * [connect 创建连接]
17: */
18: public static function connect()
19: {
20: if(isset(self::$mysqli))return;
21: self::$mysqli = new MySQLi(self::$host,self::$uid,self::$pwd,self::$dbName);
22: !empty(self::$mysqli) or die("数据库连接失败:".self::$mysqli->connect_error);
23: self::$mysqli->query("set names utf8");
24: }
25:
26: /**
27: * [execute_dml 执行增删改操作]
28: * @param [string] $sql [DML语句]
29: * @return [int] [操作成功返回受影响行数,否则返回-1]
30: */
31: public static function execute_dml($sql)
32: {
33: self::connect();
34: $result = self::$mysqli->query($sql) or die('执行DML语句时出错:'.self::$mysqli->error);
35: if (!$result) {
36: return -1;
37: } else {
38: return self::$mysqli->affected_rows;
39: }
40: }
41:
42: /**
43: * [execute_dql 执行查询操作]
44: * @param [string] $sql [DQL语句]
45: * @return [mysqli_result] [返回查询结果集]
46: */
47: public static function execute_dql($sql)
48: {
49: self::connect();
50: $result = self::$mysqli->query($sql) or die('执行DQL语句时出错:'.self::$mysqli->error);
51: return $result;
52: }
53:
54: /**
55: * [show_table_data 显示表数据]
56: * @param [string] $tableName [表名]
57: * @return [string] [HTML]
58: */
59: public static function show_table_data($tableName)
60: {
61: $result=self::execute_dql("select * from $tableName");
62: //显示表头信息:
63: echo "<br/>数据表:".$result->fetch_field()->table." 总行数:".$result->num_rows;
64: $tableData="<table border='1' cellpadding='5'><tr>";
65: $fieldsCount = $result->field_count;
66: for ($i=0; $i <$fieldsCount; $i++) {
67: $tableData.= "<th>".$result->fetch_field_direct($i)->name."</th>";
68: }
69: $tableData.="</tr>";
70:
71: //显示数据信息:
72: while ($row = $result->fetch_object()) {
73: $tableData.="<tr>";
74: foreach ($row as $value) {
75: $tableData.="<td>$value</td>";
76: }
77: $tableData.="</tr>";
78: }
79: $tableData.="</table>";
80:
81: $result->free();
82: self::$mysqli->close();
83: //或者 mysqli_close(self::$mysqli);
84: echo $tableData;
85: }
86:
87: }
88: ?>
调用示例:
1: <?php
2: header("Content-Type:text/html; charset=utf8");
3:
4: //自定义MysqliHelper的测试与使用
5: //============================================
6:
7: //引用自定义的MysqliHelper类
8: require_once "MysqliHelper.class.php";
9:
10: // 查
11: // $sql = "select * from userinfo where id>8";
12: // 增
13: // $sql = "insert into userinfo(uName,uAge,uPwd) values('测试08',25,MD5('1234'));";
14: // 删
15: // $sql = "delete from userinfo where id=24";
16: // 改
17: $sql = "update userinfo set uAge=28 where Id=21";
18:
19: //执行查询语句
20: // $result = MysqliHelper::execute_dql($sql);
21:
22: //执行增删改语句
23: $result = MysqliHelper::execute_dml($sql);
24: if ($result==-1) {
25: echo "操作失败:(";
26: } else {
27: echo "操作成功:".$result."行受影响";
28: }
29:
30: //显示表数据
31: MysqliHelper::show_table_data("userinfo");
32:
33: ?>
PHP基础封装简单的MysqliHelper类的更多相关文章
- 《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动 ...
- python+selenium之自定义封装一个简单的Log类
python+selenium之自定义封装一个简单的Log类 一. 问题分析: 我们需要封装一个简单的日志类,主要有以下内容: 1. 生成的日志文件格式是 年月日时分秒.log 2. 生成的xxx.l ...
- Python之自定义封装一个简单的Log类
参考:http://www.jb51.net/article/42626.htm 参考:http://blog.csdn.net/u011541946/article/details/70198676 ...
- Python+Selenium中级篇之8-Python自定义封装一个简单的Log类《转载》
Python+Selenium中级篇之8-Python自定义封装一个简单的Log类: https://blog.csdn.net/u011541946/article/details/70198676
- Java基础语法<七> 对象与类 封装
笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 1. 类之间的关系 1.1 依赖 users– a 是一种最明显的.最常见的关系.如果一个类的方法操作另一个 ...
- 简单封装 Delphi 的 DirectX类
var CreatorRenderer : TCreatorRenderer; Form1: TForm1; 窗体代码: {$R *.dfm} procedure TForm1.FormCreate ...
- 【转】Python基础-封装与扩展、静态方法和类方法
[转]Python基础-封装与扩展.静态方法和类方法 一.封装与扩展 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码:而外部使用者只知道一个接口(函数),只要接口(函数 ...
- 模块的封装之C语言类的继承和派生
[交流][微知识]模块的封装(二):C语言的继承和派生 在模块的封装(一):C语言的封装中,我们介绍了如何使用C语言的结构体来实现一个类的封装,并通过掩码结构体的方式实 现了类成员的保护.这一部分,我 ...
- ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 动作结果 前面的章节中,我们一直使用简单的 C# 类作为控制器. 虽 ...
随机推荐
- C语言用面向对象的思想写贪吃蛇
大概一年前这时候,接触C语言一个月,那时候知之甚少,对面向对象只觉”可远观而不可亵玩“,而且会看到很多言论说C语言就是面向过程的语言,C++就是面向对象的语言.不过,不记得什么时候在网上看到过一篇博文 ...
- python实现自动输入命令回车操作
苦逼的在sf上等了一天(问题链接),都没人来解答,只好自己想办法,东平西凑还是勉强实现了,记录一下: 安装完python2.7后,在cmd命令行输入python回车,后出现python相关的提示信息, ...
- div内容上下居中
今天无聊闲逛技术群,听一哥们说要在div里面居中span内容. 第一印象:vertical-align: middle; 结果失效.因为他只对属于inline的元素或是inline-block.tab ...
- Python3 学习笔记------迭代器
python 迭代器 要理解python迭代器(iterator),先要理解两个概念:Iterable(可迭代对象).Iterator(迭代器) 先来help()一下Iterator: >> ...
- C#保存图片设置图片质量的方法
主要用到System.Drawing.Imaging命名空间下的ImageCodecInfo.Encoder.EncoderParameter.EncoderParameters四个类 实现代码 代码 ...
- HTML5学习总结-07 WebStorage 本地存储
一 Storage sessionStorage session临时回话,从页面打开到页面关闭的时间段 窗口的临时存储,页面关闭,本地存储消失 localStorage 永久存储(可以手动删除数据)S ...
- mac系统的一些操作常识
mac系统如何显示和隐藏文件 苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令.显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写): 显 ...
- python学习笔记-(三)条件判断和循环
1.条件判断语句 Python中条件选择语句的关键字为:if .elif .else这三个.其基本形式如下: age_of_cc = 27 age = int(input("guessage ...
- awk多模式匹配
awk -F ':' '{if(($1 ~/wlan/)||( $1 ~/Cell/)||($1 ~/Quality*/)) {print $0}}'
- centos设置编码
CentOS6.5解决中文乱码与设置字符集 Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.为了解决此问题,修改Linux的 ...