手撸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越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式. ...
随机推荐
- java反射机制获取自定义注解值和方法
由于工作需求要应用到java反射机制,就做了一下功能demo想到这些就做了一下记录 这个demo目的是实现动态获取到定时器的方法好注解名称,废话不多说了直接上源码 1.首先需要自定义注解类 /** * ...
- 我与微软的不解之缘 - 我的Insider Dev Tour 2019讲师之旅
标题:我与微软的不解之缘 - 我的Insider Dev Tour 2019讲师之旅 作者:Lamond Lu 大家好,我是陆楠,来自北京盛安德青岛分公司,今年非常有幸作为讲师参加了微软Insider ...
- 基于List数组转换成tree对象
package com.shjysoft.yunxi.sync.webservice; import java.util.ArrayList;import java.util.Date;import ...
- asyncio源码分析之基本执行流程
基于async关键字的原生协程 # 定义一个简单的原生协程cor async def cor(): print('enter cor') print('exit cor') print(type(co ...
- Java基本数据类型之间转换
一.自动类型转换 转换的过程自动发生规则:小——>大byte->short->int->long->float->double char类型识别为int,可以转成i ...
- 如何搭建一个vue项目(完整步骤)
参考资料 一.安装node环境 1.下载地址为:https://nodejs.org/en/ 2.检查是否安装成功:如果输出版本号,说明我们安装node环境成功 3.为了提高我们的效率,可以使用淘宝的 ...
- 用PHP抓取百度贴吧邮箱数据
注:本程序可能非常适合那些做百度贴吧营销的朋友. 去逛百度贴吧的时候,经常会看到楼主分享一些资源,要求留下邮箱,楼主才给发. 对于一个热门的帖子,留下的邮箱数量是非常多的,楼主需要一个一个的去复制那些 ...
- 虚拟机linux下git clone 报SSL connect error错误
今天在安装azkaban时,用git clone https://github.com/azkaban/azkaban.git,虚拟机报了SSL connect error,翻了很多博客,有的说是gi ...
- scala刷LeetCode--26 删除排序数组中的重复项
一.题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完 ...
- 满足高密度设备存储需求 一颗ICMAXLPDDR4X 8GB就行
通讯技术在当代无疑更新越来越快速,随着5G时代即将到来,对通讯的设备的要求也将提出更高的要求.具备AI功能的硬件设备将普及化,其智能化程度也将越来越高,同时对手机等智能移动设备的内存容量和带宽也提出了 ...