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语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
随机推荐
- 向asp.net项目中添加控件AspNetPager
1.打开项目,把.dll文件放入项目中: 2.在工具栏中添加一个自定义选项卡
- 封装JDBC事务操作,执行存储过程测试
Oracle数据库端测试环境见:http://www.cnblogs.com/yshyee/p/4392328.html package com.mw.utils; import java.sql.C ...
- 使用jcifs.smb.SmbFile读取Windows上共享目录的文件
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws Servl ...
- Effective Java Item2:Consider a builder when faced with many constructor parameters
Item2:Consider a builder when faced with many constructor parameters 当构造方法有多个参数时,可以考虑使用builder方式进行处理 ...
- LeetCode_Minimum Path Sum
iven a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...
- Smarty 保留变量
{$smarty} 保留变量 可以通过PHP的保留变量 {$smarty}来访问一些环境变量. 下面是这些变量的列表: 页面请求变量 页面请求变量如$_GET, $_POST, $_COOKIE, $ ...
- BZOJ2023: [Usaco2005 Nov]Ant Counting 数蚂蚁
2023: [Usaco2005 Nov]Ant Counting 数蚂蚁 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 56 Solved: 16[S ...
- 黑马程序员_Java面向对象_包
7.包 7.1包(package) 对类文件进行分类管理. 给类提供多层命名空间. 写在程序文件的第一行. 类名的全称是:包名.类名. 包也是一种封装形式. 利用命令行自动生成文件夹格式:D:\jav ...
- jQuery实现置顶和置底特效
原文地址:http://www.jqueryba.com/3403.html <script src="jquery.min.js" type="text/java ...
- 支持多文件上传,预览,拖拽,基于bootstra的上传插件fileinput 的ajax异步上传
首先需要导入一些js和css文件 <link href="__PUBLIC__/CSS/bootstrap.css" rel="stylesheet"&g ...