1. <?php
  2.  
  3. class DB{
  4. //主机地址
  5. var $host;
  6. //用户名
  7. var $username;
  8. //密码
  9. var $password;
  10. //数据库名
  11. var $dbname;
  12. //字符集
  13. var $charset;
  14. //数据库连接对象,主要用在mysql_query($sql,$this->con);
  15. private $con;
  16. //外界获取的mysqlDB类操作对象
  17. public static $dao;
  18. //获得mysqlDB类对象(单例)
  19. public static function getInstance($config){
  20. if(!isset(self::$dao)){
  21. self::$dao = new self($config);
  22. }
  23. return self::$dao;
  24. }
  25. //private禁止外部new,减少new带来的开销,并设置默认的配置。
  26. private function __construct($config){
  27. $this->host = isset($config['host'])?$config['host']:'localhost';
  28. $this->port = isset($config['port'])?$config['port']:'3306';
  29. $this->username = isset($config['username'])?$config['username']:'root';
  30. $this->password = isset($config['password'])?$config['password']:'root';
  31. $this->dbname = isset($config['dbname'])?$config['dbname']:'test';
  32. $this->charset = isset($config['charset'])?$config['charset']:'utf8';
  33. //连接数据库
  34. $this->con = $this->connect();
  35. //设置数据库名,默认为test
  36. $this->useDb($this->dbname);
  37. //设置字符集,默认为utf8。
  38. $this->setCharset($this->charset);
  39.  
  40. }
  41. //禁止外部克隆
  42. private function __clone(){
  43.  
  44. }
  45. //连接不成功在这个分段找。
  46. //////////////////////////////////////////////////////
  47. //连接数据库
  48. public function connect(){
  49. $con =
  50. mysql_connect("$this->host:$this->port","$this->username","$this->password") or die("连接数据库失败");
  51. return $con;
  52. }
  53. //1.执行增、删、改sql语句
  54. public function exec($sql){
  55. $res = mysql_query($sql,$this->con);
  56. if($res){
  57. // echo "<br/>sql语句:".$sql."<br>";
  58. // var_dump($res);
  59. return true;
  60.  
  61. //要是增删改有问题可以在这里输出sql调试。
  62. }else{
  63. echo "<br/>sql语句:".$sql;
  64. echo "<br/出错信息>:".mysql_error();
  65. echo "<br/出错代码>:".mysql_errno();
  66. exit;
  67. }
  68. }
  69. //额外设置字符集
  70. public function setCharset($charset){
  71. $sql = "set names '$charset'";
  72. $this->exec($sql) or die("set");
  73. //die();
  74. }
  75. //额外设置数据库
  76. public function useDb($dbname){
  77. $sql = "use $dbname";
  78. $this->exec($sql) or die("use");//or die()函数前面需返回对应的true或false;
  79. }
  80. ////////////////////////////////////////////////////////
  81. //查找出错在这个部分找。
  82. //4.将查到的结果集转为单个数据,这里是索引数组的第一个字段。
  83. public function getOne($sql){
  84. $rec = mysql_query($sql,$this->con);
  85. $res = mysql_fetch_row($rec);
  86. if($res){
  87. return $res[0];
  88. }else{
  89. return false;
  90. }
  91. }
  92. //可能修改的函数全部放在上面,以便查找。下方函数基本不会修改。
  93. //编号1~4是高频率使用的函数。
  94. //2.获取一行数据(一维)
  95. public function getRow($sql){
  96. $rec = mysql_query($sql,$this->con);
  97. $res = mysql_fetch_assoc($rec);
  98. if($res){
  99. return $res;
  100. }else{
  101. return false;
  102. }
  103. }
  104. //3.获取所有数据(二维)
  105. public function getAll($sql){
  106. $rec = mysql_query($sql,$this->con);
  107. $arr = array();//定义 一个数组
  108. while($res = mysql_fetch_assoc($rec)){
  109. $arr[] = $res;
  110. }
  111. if($arr){
  112. return $arr;
  113. }else{
  114. return false;
  115. }
  116. }
  117.  
  118. }
  119.  
  120. $dao = DB::getInstance(null);
  121. ?>

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

注意事项:

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. 【Oracle】datafile的resize大小确认方法

    在对Oracle的表进行删除操作的时候,虽然数据被清空了,但是物理上占用的空间却没有被释放掉,这有可能使我们的DB服务器的物理存储始终在增长. 我们在删除用户,表的同时也要对datafile文件进行r ...

  2. mysql workbench 报错:Can't analyze file, please try to change encoding type...

    Mysql workbench 导入csv can't analyze file 原因: workbench 识别csv第一行作为column名,column名不能为中文,所以报错.解决方法:csv第 ...

  3. HTML51-清除浮动overflow、网易注册界面基本结构搭建

    一.overflow:hidden;作用 (1)可以将超出标签范围的内容裁剪掉 (2)清除浮动 .box1{ background-color: red; /*border:1px white sol ...

  4. koa2 从入门到进阶之路 (七)

    之前的文章我们介绍了一下 koa koa-static静态资源中间件,本篇文章我们来看一下 koa 中 cookie 和 session 的使用. cookie 是存储于访问者的计算机中的变量.可以让 ...

  5. #w30 2019年大前端技术周刊

    本周是2019年第30周 会议 2019年ArchSummit全球架构师峰会 2019年7月在深圳举行了ArchSummit全球架构师峰会,里面有不少关于大前端的主题可以关注. 从0到1,移动政务应用 ...

  6. PHP给图片加上图片水印和文字水印实例

    下面给大家分享一下PHP给图片加上图片水印和文字水印实例,这也是网站经常用到的功能,把代码加上去,调用就很简单了. 核心代码: function imageWaterMark($groundImage ...

  7. Spring Boot 2 单元测试

    开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8 IDEA新建一个Spring Boot项目后,pom.xml默认包含了Web应用和单元测试两个依赖包.如下 ...

  8. Django 模板变量之 forloop

    1. 模板变量之forloop.counter:从1开始自增1 模板代码如下: {% for row in v %} <tr> <td>{{forloop.counter}}& ...

  9. 如何为 Automatic Undo Management 调整 UNDO Tablespace 的大小 (Doc ID 262066.1)

    How To Size UNDO Tablespace For Automatic Undo Management (Doc ID 262066.1) APPLIES TO: Oracle Datab ...

  10. elementUI+Vue实现管理系统的登录页面

    <template> <div class="maxbox"> <div id="appp"> <vue-partic ...