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 ...
随机推荐
- Jmeter接口测试-badboy录制脚本(二)
1.脚本录制,采用badboy进行录制,操作步骤很简单 2.badboy简介: Badboy是一款免费WEB自动化测试工具. 官方下载地址:http://www.badboy.com.au badbo ...
- 【HPP开发】让所有中小企业拥有自己的APP
HPP hybirdApp或者hbuilderApp, 指通过html,css,js语言开发出ios和android两个版本的APP, 开发效率成倍上升,开发时间大幅缩减,开发成本同样也大大缩减. 移 ...
- centos虚拟机NAT静态IP设置
宿主机为Centos6.3 64位,三台虚拟机为为Centos6.3 64位.虚拟机的网络连接方式为默认的NAT方式.虚拟机默认为DHCP方式动态获取IP.为了在三台虚拟机上搭建hadoop,需要将这 ...
- javascript eval和JSON之间的联系(转)
eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句.eval函数将把最后一个表达式 ...
- 结合tcpdump命令对traceroute深入分析
昨天突然被问到traceroute的原理,一时竟也说不出来,有些命令平时虽然经常在用,但实际原理确并不了解,趁这次机会就来梳理一下. traceroute:是网络诊断中,用来分析IP包经过那些路由的命 ...
- 打开SQL Server 配置管理器时出现了问题
解决方法: 1.找到sqlmgmproviderxpsp2up.mof的文件位置 2.打开window+R打开命令提示符(输入cmd):输入sqlmgmproviderxpsp2up.mof的文件位置 ...
- (一)《Java编程思想》学习——按位运算符、移位运算符
(第三章) (一)按位运算符 按位逻辑运算符有: “与”(AND) & 1&1=1;1&0=0;0&0=0 “或”(OR) | 1|1=1;1|0=1;0 ...
- jquery中attr与pror
- 3.Android Studio系列教程3——快捷键
原文链接:http://stormzhang.com/devtools/2014/12/09/android-studio-tutorial3/ 一.更新Android Studio 项目根目录的 ...
- Sql Server 2008清理数据库日志的语句
USE [master]GOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECO ...