手撸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

 

posted @ 2018-05-12 18:37  幻丶城  阅读(248)  评论(0编辑  收藏  举报