首页 >后端开发 >php教程 >小白求指点:这样的代码结构如何样优化呢

小白求指点:这样的代码结构如何样优化呢

WBOY
WBOY原创
2016-06-13 12:20:07868浏览

小白求指点:这样的代码结构怎么样优化呢?
我是这样设计的:一个是数据库连接文件 db.conn.php 一个自定义函数文件 config.inc.php 

db.conn.php:

<?php<br />$db_host = 'localhost';<br />$db_user = '*****';<br />$db_password = '*******';<br />$db_database = '******';<br />$conn = new mysqli($db_host, $db_user, $db_password, $db_database);<br />mysqli_query($conn, "set names 'utf8'"); <br />if(mysqli_connect_errno()){die('数据库连接失败: ' . mysqli_connect_error());}<br />$site_data = $conn->query("SELECT * FROM `dh_member_control` WHERE `id`=1");<br />$site = mysqli_fetch_array($site_data);<br />?>


config.inc.php:

function marrbase(){<br />if(isset($_COOKIE["uname"]) && isset($_COOKIE["uid"])){<br />global $mbase;<br />global $conn;<br />$mql = "select * from dh_member where `id`=" . $_COOKIE["uid"] . " and `mck`=1";<br />$mbase_data = mysqli_query($conn, $mql);<br />$mbase = mysqli_fetch_array($mbase_data);}<br />else{exit();}<br />}<br /><br />function login_log($muid){<br />if (empty($muid)){exit();}<br />else {<br />global $conn;<br />$lql = "INSERT INTO `dh_mllog` (`uid`,`ltime`,`lip`,`lptxt`) VALUES (". $muid .",'". date("Y-m-d H:i:s") ."','". getIPaddress() ."','". getIPS138(getIPaddress()) ."')" ;<br />if (!mysqli_query($conn, $lql)){die(mysqli_error());exit();}}<br />}<br /><br />function memberislogin($back = NULL){<br />if(!isset($_COOKIE["uname"]) || !isset($_COOKIE["uid"])){echo "<script>alert('没有登录');window.location.href=\"/member/login.php?backurl=". $back ."\";</script>"; exit();}<br />else {<br />global $conn;<br />$login_check = mysqli_query ("SELECT * FROM `dh_member` WHERE `id`=". $_COOKIE["uid"] ." AND `mck`=1");<br />if(!mysqli_num_rows($login_check)){echo "<script>window.location.href=\"/member/login.php?backurl=". $back ."\"</script>"; exit();}}<br />}<br />.....等等自定义函数<br />


在用户前台 引用进这些文件 然后进行输出交互等操作..

这里面我目前就觉着 我每次自定义个函数 都要 global $conn 来引用,有没有更好的办法来设计?
整个网页设计有没有更好的设计方式呢(CMS就不要推荐了)
求做过大项目的大神指点指点..

------解决思路----------------------
从 mysqli 继承一个 db 类
提供:
count 属性,用于返回影响的条数
fetch 方法,传入查询指令,返回一维数组
fetchall 方法,传入查询指令,返回二维数组
exec 方法,用于执行非查询类指令
基本就够了


------解决思路----------------------
学会封装代码,将mysql模块封装,其它需要用的地方,引用这个文件,直接调用封装的接口。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn