<?php

class DB{
//主机地址
var $host;
//用户名
var $username;
//密码
var $password;
//数据库名
var $dbname;
//字符集
var $charset;
//数据库连接对象,主要用在mysql_query($sql,$this->con);
private $con;
//外界获取的mysqlDB类操作对象
public static $dao;
//获得mysqlDB类对象(单例)
public static function getInstance($config){
if(!isset(self::$dao)){
self::$dao = new self($config);
}
return self::$dao;
}
//private禁止外部new,减少new带来的开销,并设置默认的配置。
private function __construct($config){
$this->host = isset($config['host'])?$config['host']:'localhost';
$this->port = isset($config['port'])?$config['port']:'3306';
$this->username = isset($config['username'])?$config['username']:'root';
$this->password = isset($config['password'])?$config['password']:'root';
$this->dbname = isset($config['dbname'])?$config['dbname']:'test';
$this->charset = isset($config['charset'])?$config['charset']:'utf8';
//连接数据库
$this->con = $this->connect();
//设置数据库名,默认为test
$this->useDb($this->dbname);
//设置字符集,默认为utf8。
$this->setCharset($this->charset); }
//禁止外部克隆
private function __clone(){ }
//连接不成功在这个分段找。
//////////////////////////////////////////////////////
//连接数据库
public function connect(){
$con =
mysql_connect("$this->host:$this->port","$this->username","$this->password") or die("连接数据库失败");
return $con;
}
//1.执行增、删、改sql语句
public function exec($sql){
$res = mysql_query($sql,$this->con);
if($res){
// echo "<br/>sql语句:".$sql."<br>";
// var_dump($res);
return true; //要是增删改有问题可以在这里输出sql调试。
}else{
echo "<br/>sql语句:".$sql;
echo "<br/出错信息>:".mysql_error();
echo "<br/出错代码>:".mysql_errno();
exit;
}
}
//额外设置字符集
public function setCharset($charset){
$sql = "set names '$charset'";
$this->exec($sql) or die("set");
//die();
}
//额外设置数据库
public function useDb($dbname){
$sql = "use $dbname";
$this->exec($sql) or die("use");//or die()函数前面需返回对应的true或false;
}
////////////////////////////////////////////////////////
//查找出错在这个部分找。
//4.将查到的结果集转为单个数据,这里是索引数组的第一个字段。
public function getOne($sql){
$rec = mysql_query($sql,$this->con);
$res = mysql_fetch_row($rec);
if($res){
return $res[0];
}else{
return false;
}
}
//可能修改的函数全部放在上面,以便查找。下方函数基本不会修改。
//编号1~4是高频率使用的函数。
//2.获取一行数据(一维)
public function getRow($sql){
$rec = mysql_query($sql,$this->con);
$res = mysql_fetch_assoc($rec);
if($res){
return $res;
}else{
return false;
}
}
//3.获取所有数据(二维)
public function getAll($sql){
$rec = mysql_query($sql,$this->con);
$arr = array();//定义 一个数组
while($res = mysql_fetch_assoc($rec)){
$arr[] = $res;
}
if($arr){
return $arr;
}else{
return false;
}
} } $dao = DB::getInstance(null);
?>

<?php

include_once("DB.class.php");

$sql = "select * from goods where id = 1";
//.获取一行数据(一维)

$res = $dao->getRow($sql); var_dump($res);

//以上的getRow函数只是举例,具体如何使用这个工具,首先要在php文件中include这个工具类,即include_once("DB.class.php");
//1.要看sql语句查回的数据是一维的,还是二维的,或者单个数据。
//对应的函数是getROW,getAll,getOne。
//2.增删改统一用exec。
//3.数据库的连接配置在构造构造函数中修改。 ?>

注意事项:

1.文件DB.class.php建好后。

2.在需要操作数据库接的文件中include这个文件,上面有示例。

3.使用之前必须把数据库名改成当前项目数据库名。这个是最重要的,也是最容易忘记的。

仅支持基本增删改查的学生自制php操作mysql的工具类 DB.class.php (学生笔记)的更多相关文章

  1. 创建支持CRUD(增删改查)操作的Web API(二)

    一:准备工作 你可以直接下载源码查看 Download the completed project.     下载完整的项目 CRUD是指“创建(C).读取(R).更新(U)和删除(D)”,它们是四个 ...

  2. 1、list 的一些相关操作 2、增删改查 3、tuple 的操作 4、range

    1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 # lst = [1, "周杰伦" ...

  3. IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)

    原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...

  4. 页面循环绑定(变量污染问题),js面向对象编程(对象属性增删改查),js字符串操作,js数组操作

    页面循环绑定(变量污染问题) var lis = document.querySelectorAll(".ul li") for ( var i = 0 ; i < lis. ...

  5. 用户增删改查 django生命周期 数据库操作

    一 django生命周期 1 浏览器输入一个请求(get/post)2 响应到django程序中3 执行到url,url通过请求的地址匹配到不同的视图函数4 执行对应的视图函数,此过程可以查询数据库, ...

  6. mysql数据库终端上的增删改查及权限等相关操作

    ctrl + c 终止 [linux] service mysql start 启动mysql service mysql stop 停止mysql service mysql restart 重启m ...

  7. Android学习笔记_9_SQLiteOpenHelper对象之数据库增删改查以及事务回滚操作

    一.SQLite数据库: 在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进 ...

  8. DOM节点的增删改查以及class属性的操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Linux - 用户的增删改查及组的相关操作

    useradd:新增一个用户 useradd 几个常用的参数: -u:指定用户的 uid -g:指定用户所属的组 -d:指定用户的家目录 -c:指定用户的备注信息 -s:指定用户所用的 shell [ ...

随机推荐

  1. 经验之谈-switch结构常见错误的分析与处理

    1.缺少break语句 本来只想输出“出任武林盟主”可输出结果为 错误分析:在 switch结构中,每一个case语句块后面如果不写 break语句, switch就会 直接往下面的case语句块运行 ...

  2. netty源码解析(4.0)-21 ByteBuf的设计原理

        io.netty.buffer包中是netty ByteBuf的实现.ByteBuf是一个二进制缓冲区的抽象接口,它的功能有: 可以随机访问.顺序访问. 支持基本数据类型(byte, shor ...

  3. 在线程中显示一个窗口(多个UI线程)

    多数耗时操作可以异步执行,推荐async/await. 但和UI相关的部分仅能在UI线程执行,这时UI线程的耗时操作,导致界面卡死,不够友好. 我们可以创建一个单独的UI线程显示一个正在加载的窗口,可 ...

  4. PHP+jQuery开发简单的翻牌抽奖实例

    PHP+jQuery开发简单的翻牌抽奖实例,实现流程:页面放置6个方块作为奖项,当抽奖者点击某一块时,方块翻转到背面,显示中奖信息,这个奖品是随机的,不是固定的. 在页面上放置6个奖项: <ul ...

  5. IDEA中新建SpringBoot项目时提示:Artifact contains illegal characters

    场景 一步一步教你在IEDA中快速搭建SpringBoot项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/87688277 ...

  6. PostgreSQL 常用函数

    类似Oracle ,PostgreSQL也有强大的类型转换函数, 下面仅举两个类型转换例子. --1 例子 postgres; ?column? ---------- ( row) 在PG里如果想做除 ...

  7. 简单快速上手Jackson使用

    1简介 Jackson具有比较高的序列化和反序列化效率,据测试,无论是哪种形式的转换,Jackson > Gson > Json-lib,而且Jackson的处理能力甚至高出Json-li ...

  8. 用IIS进行部署,发布网页,运行DEMO

    因项目需要,正在学习如何部署IIS服务,并发布网站,发布以后,运行网页,具体步骤如下: 一.IIS的部署 在进行部署前,需要将一些必要的配置选好,如图: 打开选项,进行设置,将箭头部分进行勾选 在wi ...

  9. WebGL-3D地图大俯仰角的雾化处理

    腾讯位置服务Javascript API GL版,是基于WebGL技术打造的地图API库,使得浏览器环境下也可实现APP端的应用体验,提供2D/3D模式,运行流畅.当前版本提供地图展示.标记.信息窗口 ...

  10. 多线程之NSOpertionQueue操作队列

    //NSOpertionQueue NSOperation //Queue //主队列 和 自定义队列 //主队列是运行在主线程当中,自定义队列运行在后台 //NSOperation 定义需要执行的操 ...