手撸PHP数据库连接
最近这个月过得确实有点狼狈。。。。不停地复习,看书。。终于到今天为止考完了2科了。能让我好好地写写博客了。。前段时间的PHP课设我多学了点东西,在我们一般老师讲的php连接数据库方面做了一些优化。前段时间发了第一个版本的,耦合度有点高。问了老师,我仿照着java的数据库连接的方式我也写了一个。。。比较基础的连接方式。
第一个是XML文件。。只需要修改这里面的对应的,DB_HOST,DB_USER,DB_PWD 即可。
<?xml version="1.0"
encoding="UTF-8"?> <database> <DB_HOST>localhost</DB_HOST> <DB_USER>root</DB_USER> <DB_PWD>root</DB_PWD> <DB_NAME>php_car</DB_NAME> </database> 这是主要控制连接的文件。。。 <?php /** * Created by PhpStorm. * User: gjt * Date: 2018/1/5 * Time: 11:07 */ /** * header 设置字符集 * define 常量,不可更改 */ header("Content-Type:text/html;charset=utf-8"); $file ="DataBase.XML"; $con =file_get_contents($file); /** * XML文件标签 */ $xmlTag =array( "DB_HOST", "DB_USER", "DB_PWD", "DB_NAME" ); $arr =array(); /** * 遍历标签 */ foreach($xmlTagas
$x){ preg_match_all("/<".$x.">.*<\/".$x.">/",$con,
$temp); $arr[]=
$temp[0]; } $data =array(); foreach($arras
$key =>
$value) { foreach($valueas
$k =>
$v) { $a =
explode($xmlTag[$key].'>',$v); $v =
substr($a[1],0,
strlen($a[1])-2); $data[$k][$xmlTag[$key]]=
$v; } } echo '<pre>'; /*print_r($data[0]);*/ define('DB_HOST',$data[0][$xmlTag[0]]); define('DB_USER',$data[0][$xmlTag[1]]); define('DB_PWD',$data[0][$xmlTag[2]]); define('DB_NAME',$data[0][$xmlTag[3]]);//需要修改为自己的数据库名字 global $conn; /** * 连接mysql */ $conn =@mysqli_connect(DB_HOST,DB_USER,
DB_PWD) or
die("连接失败".
mysqli_error($conn)); /** * 选择指定数据库,字符集 */ mysqli_select_db($conn,DB_NAME)
ordie("数据库错误".
mysqli_error($conn)); echo "连接成功"; /*mysqli_query($conn, "SET NAMES UTF-8");*/
$file文件填写文件名字。创建的.xml文件的文件名字。
完成以上操作之后。。。
使用这句话。
require "config.php";
global $conn;
就可以建立数据库连接。。。
在此自己还可以再写一个文件,定义一些默认的方法。可以一定限度减少代码量。对于初学者有很大帮助。这是我在上这个课程的一些感受,如果有兴趣的可以深入研究,目前只支持了mysql的数据库连接。后面如果空闲下来,我会对这个进行重新设计,那时候应该会加上SQLserver的数据库连接。
至于BUG的问题,肯定是有的,毕竟这个不是PHP框架,我也不是专门做PHP开发的,当初写这个就是为了做作业的时候省一些力气,后来感觉,这个可以扩展,我才从最基础的数据库连接扩展到现在。有问题欢迎大家提出来,我会虚心采纳的。
这是代码:https://github.com/1163236754/PHPforDB

手撸PHP数据库连接的更多相关文章
- 康少带你手撸orm
orm 什么是orm? 对象关系映射: 一个类映射成一张数据库的表 类的对象映射成数据库中的一条条数据 对象点数据映射成数据库某条记录的某个值 优点:不会写sql语句的程序员也可以很6的操作sql语句 ...
- C#基于Mongo的官方驱动手撸一个Super简易版MongoDB-ORM框架
C#基于Mongo的官方驱动手撸一个简易版MongoDB-ORM框架 如题,在GitHub上找了一圈想找一个MongoDB的的ORM框架,未偿所愿,就去翻了翻官网(https://docs.mongo ...
- php手撸轻量级开发(一)
聊聊本文内容 之前讲过php简单的内容,但是原生永远是不够看的,这次用框架做一些功能性的事情. 但是公司用自己的框架不能拿出来,用了用一些流行的框架比如tp,larveral之类的感觉太重,CI也不顺 ...
- 使用Java Socket手撸一个http服务器
原文连接:使用Java Socket手撸一个http服务器 作为一个java后端,提供http服务可以说是基本技能之一了,但是你真的了解http协议么?你知道知道如何手撸一个http服务器么?tomc ...
- 【手撸一个ORM】MyOrm的使用说明
[手撸一个ORM]第一步.约定和实体描述 [手撸一个ORM]第二步.封装实体描述和实体属性描述 [手撸一个ORM]第三步.SQL语句构造器和SqlParameter封装 [手撸一个ORM]第四步.Ex ...
- Haskell手撸Softmax回归实现MNIST手写识别
Haskell手撸Softmax回归实现MNIST手写识别 前言 初学Haskell,看的书是Learn You a Haskell for Great Good, 才刚看到Making Our Ow ...
- 手撸基于swoole 的分布式框架 实现分布式调用(20)讲
最近看的一个swoole的课程,前段时间被邀请的参与的这个课程 比较有特点跟一定的深度,swoole的实战教程一直也不多,结合swoole构建一个新型框架,最后讲解如何实现分布式RPC的调用. 内容听 ...
- .NET手撸2048小游戏
.NET手撸2048小游戏 2048是一款益智小游戏,得益于其规则简单,又和2的倍数有关,因此广为人知,特别是广受程序员的喜爱. 本文将再次使用我自制的"准游戏引擎"FlysEng ...
- .NET手撸绘制TypeScript类图——上篇
.NET手撸绘制TypeScript类图--上篇 近年来随着交互界面的精细化,TypeScript越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式. ...
随机推荐
- 使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
nodejs-koa2-mysql-sequelize-jwt 技术栈:nodejs, koa2, mysql, sequelize, jwt 项目数据层和操作层分明 使用koa2框架中间件,参数处理 ...
- 移动IM开发指南2:心跳指令详解
<移动IM开发指南>系列文章将会介绍一个IM APP的方方面面,包括技术选型.登陆优化等.此外,本文作者会结合他在网易云信多年iOS IM SDK开发的经验,深度分析实际开发中的各种常见问 ...
- SpringBoot项目多数据源配置
博主总结的不错,事务也考虑到了,存一下: https://blog.csdn.net/xqnode/article/details/86498507
- Spring+Redis配置
既上次把同事屁屁龙的tomcat数据源文档摘抄过来之后,这次获得其同意后,再次怀着感激涕零的心情,抄个爽. 全文非本人所写,所以若转载时,请标明文章来源于本人原创(不要脸真爽哈哈哈哈),谢谢! 1.j ...
- HDU 4444:Walk(思维建图+BFS)***
http://acm.hdu.edu.cn/showproblem.php?pid=4444 题意:给出一个起点一个终点,给出n个矩形的两个对立顶点,问最少需要拐多少次弯可以从起点到达终点,如果不能输 ...
- PLT与GOT
0x01 什么是PLT和GOT 名称: PLT : 程序链接表(PLT,Procedure Link Table) GOT : 重局偏移表(GOT, Global Offset Table) 缘由: ...
- 浅入深出Vue:注册
基本布局已经有了, 现在我们来开始做我们的注册页面~ 当然需要注册才能发表文章啊(糟老头子坏得很, 我可以只有我一个人能发啊). 这里我们设定只有注册才能发表文章,也就淡化了管理员这个概念.在开发中先 ...
- 【POJ - 2676】Sudoku(数独 dfs+回溯)
-->Sudoku 直接中文 Descriptions: Sudoku对数独非常感兴趣,今天他在书上看到了几道数独题: 给定一个由3*3的方块分割而成的9*9的表格(如图),其中一些表格填有1- ...
- 20141102-微信.NET-笔记
http://weixin.senparc.com/ 欢迎使用 微信公众平台SDK! Senparc.Weixin.MP.dll 使用 Senparc.Weixin.MP.dll 整合网站与微 ...
- 一次线上遇到磁盘IO瓶颈的问题处理
Load average %wa 的含义是等待输入输出的CPU时间百分比 结合iostat命令可以发现磁盘已经在100%满负荷在跑 await:每一个IO请求的处理的平均时间(单位是毫秒).这 ...