手撸PHP数据库连接
Posted dddandwerguan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手撸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 [email protected]_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数据库连接的主要内容,如果未能解决你的问题,请参考以下文章