php 之mysqli简单封装
1:DBHelper.class.php
<?php
class DBHelper{
private $mysqli;
private static $host='127.0.0.1';
private static $user='root';
private static $pwd='mysql';
private static $dbname='test'; //通过构造方法进行初始化操作
public function __construct(){
$this->mysqli=new mysqli(self::$host,self::$user,self::$pwd,self::$dbname)
or die('数据库链接出错:'.$this->mysqli->connect_error);
//设置数据库编码为utf8
$this->mysqli->query('set names utf8');
} //执行查询语句
public function execute_dml($sql){
$arr=array();
$result=$this->mysqli->query($sql) or die($this->mysqli->error);
if($result){
while($row=$result->fetch_assoc()){
//将查询结果封装到一个数组中,返回给方法调用处
$arr[]=$row;
}
//释放查询结果资源
$result->free();
}
return $arr;
} //执行增加、删除、更新语句
public function execute_dql($sql){
$result=$this->mysqli->query($sql) or die($this->mysqli->error);
if(!$result){
return 0;//表示操作失败
}else{
if($this->mysqli->affected_rows>0){
return 1;//操作成功
}else{
return 2;//没有受影响的行
}
}
}
}
?>
2:使用案例index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
require_once('DBHelper.class.php');
$dbhelper=new DBHelper();
$sql='select id,name,age from user';
$users=$dbhelper->execute_dml($sql);
if(!empty($users)){
?>
<table style="width:80%;">
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>操作</th>
</tr>
<?php
foreach($users as $user){
?>
<tr align='center'>
<td><?php echo $user['id'];?></td>
<td><?php echo $user['name'];?></td>
<td><?php echo $user['age'];?></td>
<td>
<a href="delete.php?id=<?php echo $user['id'];?>">Delete</a> |
<a href="show.php?id=<?php echo $user['id'];?>">Show</a>
</td>
</tr>
<?php }?>
</table>
<?php
}else{
echo '<h1>No result!</h1>';
}
?>
<hr/>
<a href="add.php" style="font-size:24px;font-weight:bold;">Add a new user</a>
</body>
</html>
php 之mysqli简单封装的更多相关文章
- Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池
前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...
- FMDB简单封装和使用
工具:火狐浏览器+SQLite Manager插件 ; Xcode; FMDB库; 效果: 项目地址: https://github.com/sven713/PackFMDB 主要参考这两篇博客: 1 ...
- Android--Retrofit+RxJava的简单封装(三)
1,继续接着上一篇的讲讲,话说如果像上一篇这样的话,那么我们每一次请求一个结构都要创建一堆的Retrofit对象,而且代码都是相同的,我们可以试试封装一下 先创建一个HttpMethods类,将Ret ...
- okhttp3 get post 简单封装
最近打算在新项目中使用 okhttp3, 简单封装了一下异步 get post 因为 CallBack 也是在子线程中执行,所以用到了 Handler public class MyOkHttpCli ...
- python网页请求urllib2模块简单封装代码
这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...
- 对pymysql的简单封装
#coding=utf-8 #!/usr/bin/python import pymysql class MYSQL: """ 对pymysql的简单封装 "& ...
- iOS开发——UI篇OC篇&UITableView简单封装
UITableView简单封装 UITableView时iOS开发中使用最多也是最重的一个UI空间,其实在App Store里面的%80以上的应用都用到了这个控件,所以就给大家介绍一下,前面的文章中也 ...
- iOS sqlite 增删改查 简单封装(基于 FMDB)
/** * 对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * * 基于 FMDB * * 操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整 ...
- ADO简单封装(MFC)
简单封装了一下,不是很严谨. /************************************************************************/ /* INSTRUC ...
随机推荐
- 给你讲个笑话,我是创业公司CEO
文/办公室奇葩说(Office 78)一个在办公室较为正经的八卦号. 前几天你看见朋友圈刷屏的文章<给你讲个笑话:我是做互联网的>. 你心想,写文章的那人是傻逼吗?觉得做互联网就是个笑 ...
- IBM Cognos 10 启动报错
报错信息: 15:35:02, 'LogService', 'StartService', 'Success'. 15:35:03, CAF input validation enabled. 15: ...
- Javascript Promise 学习笔记
1. 定义:Promise是抽象异步处理对象以及对其进行各种操作的组件,它把异步处理对象和异步处理规则采用统一的接口进行规范化. 2. ES6 Promises 标准中定义的API: ...
- 数组对象元素的添加,String对象,BOM对象以及文档对象的获取
数组对象的删除有三种方法: pop(); //移除最后一个元素并返回该元素值shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移splice(0,2); / ...
- 杭州电 1372 Knight Moves(全站搜索模板称号)
http://acm.hdu.edu.cn/showproblem.php?pid=1372 Knight Moves Time Limit: 2000/1000 MS (Java/Others) ...
- Linux以KB显示内存大小
Linux以KB显示内存大小 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ free -k total used free shared buffers ca ...
- mysql求时间差
SELECT TIMESTAMPDIFF(SECOND, now(), "2012-11-11 00:00:00") 语法为:TIMESTAMPDIFF(unit,datetime ...
- python字符串连接方式(转)
在python中有很多字符串连接方式,今天就在这里具体总结一下: ①.最原始的字符串连接方式:str1 + str2②.python 新字符串连接语法:str1, str2③.奇怪的字符串方式:str ...
- 结合tcpdump命令对traceroute深入分析
昨天突然被问到traceroute的原理,一时竟也说不出来,有些命令平时虽然经常在用,但实际原理确并不了解,趁这次机会就来梳理一下. traceroute:是网络诊断中,用来分析IP包经过那些路由的命 ...
- JQuery动态增加删除元素
<form action="" method="post" enctype="multipart/form-data"> < ...