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# 类作为控制器. 虽 ...
随机推荐
- 配置ASP.NET Web应用程序, 使之运行在medium trust
这文章会向你展示, 怎么配置ASP.NET Web应用程序, 使之运行在medium trust. 如果你的服务器有多个应用程序, 你可以使用code access security和medium ...
- 安卓开发30:AsyncTask的用法
http://blog.csdn.net/initphp/article/details/10392093 安卓开发笔记系列(43) 在开发Android应用时必须遵守单线程模型的原则: Andro ...
- 各种编码UNICODE、UTF-8、ASCII学习笔记
本文转自csdn博客:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html ,感谢作者的分享 作者: 阮一峰 日期: ...
- Altium Designer 15 --- Make 3D PCB Library with Rhinoceros
in the mode of "渲染模式" in the mode of "着色模式" Principle 1 : In the mode of "着 ...
- zabbix 3.0快速安装简介(centos 6)
zabbix快速安装 系统版本:centos 6 1.yum源配置和zabbix.msyql安装 rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3. ...
- (总结)Nginx配置文件nginx.conf中文详解
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...
- easyUI数据表格datagrid之笔记
1.用ajax获取数据库数据 /**========================================= * 读取数据库信息,使用ajax的load方法 */function getMe ...
- C#操作XML,如何获取指定节点值?
博客园提问,结合网友回答http://q.cnblogs.com/q/36082/ 打开是treelist树形显示xml所有节点,递归来实现 xmlDoc = new XmlDocument(); ...
- JavaScript学习笔记——BOM_window子对象_History、Location、Screnn对象
javascript-History.Location.Screnn对象实例讲解 一.history对象 包含浏览器访问过的url 1.属性 length 返回浏览器历史记录的数量 alert(his ...
- js获取某个ID的class名称
.HTML结构 <div id = "test" class="test_class">我的类名为test_class</div> &l ...