PHP原始的数据库操作
<?php
//这是一个工具类;作用是完成对数据库的操作;
class SqlHelper{
public $conn;
public $dbname="exam";
public $username="root";
public $password="123";
public $host="192.168.1.100";
//构造函数(连接数据库);
public function __construct(){
$this->conn=mysql_connect($this->host,$this->username,$this->password);
if(!$this->conn){
die("连接失败".mysql_errno());
}
//设置字符编码;
mysql_set_charset('utf8');
mysql_select_db($this->dbname,$this->conn);
}
//执行dql语句
public function execute_dql($sql){
$res=mysql_query($sql,$this->conn) or die(mysql_errno());
return $res;
}
//执行dql语句,但是返回的是一个数组
public function execute_dql2($sql){
$arr=array();
$res=mysql_query($sql,$this->conn) or die(mysql_errno());
$i=0;
//把$res的东西给$arr
while($row=mysql_fetch_array($res)){
$arr[$i]=$row;
$i++;
}
//这里可以马上关闭;
mysql_free_result($res);
return $arr;
}
//执行dml语句
public function execute_dml($sql){
$b=mysql_query($sql,$this->conn) or die(mysql_errno());
if(!$b){
return 0;
}else{
if(mysql_affected_rows($this->conn)>0){
return 1;//表示只能执行成功
}else {
return 2;//表示没有行受到影响;
}
}
}
//封装
//考虑分页情况的查询
//$sql="select * from where 表名 limit 0,6 ";
//$sql="select count(*) from 表名";
public function execute_dql_fenye($sql1,$sql2,$fenyePage){
//得到分页的数据
$res=mysql_query($sql1,$this->conn) or die (mysql_errno());
//$res=>array();
//将数据转移到数组
$arr=array();
while($row=mysql_fetch_assoc($res)){
$arr[]=$row;
}
//释放资源
mysql_free_result($res);
//把数组赋值给$fenyePage
$fenyePage->res_array=$arr;
$res2=mysql_query($sql2,$this->conn) or die (mysql_errno());
if($row=mysql_fetch_row($res2)){
$fenyePage->pageCount=ceil($row[0]/$fenyePage->pageSize);
$fenyePage->rowCount=$row[0];
}
mysql_free_result($res2);
//把导航信息也封装到$fenyePage中;
//显示上一页和下一页
$navigate="";
if($fenyePage->pageNow>1){
$prePage=$fenyePage->pageNow-1;
$navigate="<a href='{$fenyePage->gotoUrl}?pageNow=$prePage'>上一页</a>";
}
if($fenyePage->pageNow<$fenyePage->pageCount){
$nextPage=$fenyePage->pageNow+1;
$navigate.="<a href='{$fenyePage->gotoUrl}?pageNow=$nextPage'>下一页</a>";
}
//显示首页和末页
$navigate.= "<a href='{$fenyePage->gotoUrl}?pageNow=1'>首页</a>";
$navigate.= "<a href='{$fenyePage->gotoUrl}?pageNow=$fenyePage->pageCount'>末页</a>";
//显示当前页和共有多少页
$navigate.= "当前页{$fenyePage->pageNow}/总共{$fenyePage->pageCount}页";
//以下显示多少页
$page_whole=2;
$start=floor(($fenyePage->pageNow-1)/$page_whole)*$page_whole+1;
$index=$start;
$min=floor(($fenyePage->pageCount-1)/$page_whole)*$page_whole;
//向前整体翻页;
//当前pageNow在10内,就没有翻页;
if($fenyePage->pageNow>$page_whole){
$navigate.= "<a href='{$fenyePage->gotoUrl}?pageNow=".($start-1)."'> <<</a>";
}
//如何定义start (1到10)(floor(pageNow-1)/10)*10+1; (11到20)(floor(pageNow-1/10))*10+1
if($fenyePage->pageNow<=$min){
for($start;$start<$index+$page_whole;$start++){
$navigate.="<a href='{$fenyePage->gotoUrl}?pageNow=$start'>[$start]</a>";
}
}else {
for ($start;$start<=$fenyePage->pageCount;$start++){
$navigate.="<a href='{$fenyePage->gotoUrl}?pageNow=$start'>[$start]</a>";
}
}
//向后整体翻页
//向后翻页条显示条件;
//
// $min=floor($pageCount-1/$page_whole)
//
// if($pageNow<=$min*$pagewhole)
//
if($fenyePage->pageNow<=$min){
$navigate.= "<a href='{$fenyePage->gotoUrl}?pageNow=$start'> >> </a>";
}
$fenyePage->navigate=$navigate;
}
//关闭连接方式
public function close_connect(){
if(!empty($this->conn)){
mysql_close($this->conn);
}
}
}
?>
PHP原始的数据库操作的更多相关文章
- SQLite数据库操作 (原始操作)
android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API, 使用该类可以完成对数据进行添加(Create).查询(Retrieve).更新(Update)和删除( ...
- Python之路【第九篇】堡垒机基础&数据库操作
复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...
- laravel框架总结(七) -- 数据库操作
1.使用DB门面进行基本操作 一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找.DB facade 提供每个类型的查找方法:select.update.insert.delet ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
- Python之路:堡垒机实例以及数据库操作
一.堡垒机前戏 开发堡垒机之前,先学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...
- 1-1hibernate数据库操作基础
一.纯原始数据库连接详见http://www.cnblogs.com/lukelook/p/7845757.html 1.Class.forName("oracle.jdbc.driver. ...
- django的模型类管理器-----------数据库操作的封装
模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除 ...
- Qt: 数据库操作;
QT的数据库操作有两种方式: 一) 使用QsqlTableModel类, 可以配合QTableView进行界面显示并进行数据库操作, 这种方法比较方便快捷: 二) 使用原始SQL语言, 利用INSE ...
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类
在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
随机推荐
- Factorial Solved Problem code: FCTRL
import sys #import psyco #很奇怪,这题用psyco就runtime error #psyco.full() def z(n): #这个应该是技巧的一种算法 r = 0 whi ...
- LinkButton中添加删除确认框
LinkButton1.Attributes.Add("onclick", "javascript:return confirml('确认删除?');");
- C++ 的多重继承
不能够从对象访问基类的公开方法,真悲剧!只能在类里面提供公共函数! void Mentor::GetInfo(){ cout<<endl<<name<<endl&l ...
- Scala学习文档-访问修饰符
在scala里,对保护成员的访问比Java严格.Scala中,保护成员只在定义了成员的类的子类中可以访问,而Java中,还允许在同一个包的其他类中访问. package p1 { class FCla ...
- autorelease(转)
autorelease(转) (2013-02-05 18:27:43) 转载▼ 总觉得autorelease这里掌握的不到位,但涉及到内存管理,实在不可小视.今天参考了网上的不少文章和官方A ...
- Android从相册读取图片
Uri originalUri = data.getData(); //获得图片的uri bm = MediaStore.Images.Media.getBitmap(resolver ...
- MFC消息映射与命令传递
题外话:刚开始学视窗程序设计的时候,我就打印了一本Windows消息详解,里面列举了各种已定义消息的意义和作用,共10多页,在编程的时候翻翻,有时觉得很受用.我发觉很多编程的朋友,虽然每天都面对消息, ...
- 关闭WIN10的UAC/自动更新/杀毒软件(兼容WIN7/8/8.1)
第一部分:禁用wuauserv服务以及关闭UAC(保存为DW10UD.REG) Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYS ...
- Spring中Bean的命名问题及ref和idref之间的区别
一直在用Spring,其实对其了解甚少,刚去了解了一下Spring中Bean的命名问题以及ref和idref之间的区别,略作记录,以备后查. Spring中Bean的命名 1.每个Bean可以有一个i ...
- DOS批处理命令判断操作系统版本、执行各版本对应语句
DOS批处理命令判断操作系统版本.执行各版本对应语句 昨天在家里试用 netsh interface ip set address 这些命令更改上网IP.DNS.网关等,今天将那些代码拿来办公室 ...