这段程序逻辑,如何优化到极致呢?求大神看看
程序员文章站
2023-12-28 13:24:22
...
这段程序逻辑,怎么优化到极致呢?求大神看看
global $mbase_sex, $mbase_add, $mbase_tel, $mbase_sgao, $mbase_unick, $mbase_sri, $mbase_photo, $mbase_attest, $mbase_mpower, $mbase_email, $mbase_mextime, $mbase_mgold, $mbase_cybnum;
function marrbase()
{
if(isset($_COOKIE["uname"]) && isset($_COOKIE["uid"]))
{
$mbase_date = mysql_query("select * from dh_member where `uid`=" . $_COOKIE["uid"] ." and `mck`=1",$con);
$mabse = mysql_fetch_array($mabse_date);
$mbase_sex = $mbase["sex"];
$mbase_add = $mbase["add"];
$mbase_tel = $mbase["tel"];
$mbase_sgao = $mbase["sgao"];
$mbase_unick = $mbase["unick"];
$mbase_sri = $mbase["sri"];
$mbase_photo = $mbase["photo"];
$mbase_attest = $mbase["attest"];
$mbase_mpower = $mbase["mpower"];
$mbase_email = $mbase["email"];
$mbase_mextime = $mbase["mextime"];
$mbase_mgold = $mbase["mgold"];
$mbase_cybnum = $mbase["cybnum"];
}
else
{
exit;
}
}
我定义了一个函数 marrbase(),如果用户未登录则显示登录界面,如果已经登录则调用该函数:
if(!isset($_COOKIE['uname']) || !isset($_COOKIE['uid'])) {?>
...
}
else{
marrbase();
...
}?>
我总觉得这样会很浪费服务器资源,有没有更好的办法实现呢?
------解决思路----------------------
你先不要耽心资源浪费问题
而是先解决一下你的代码能否正确运行的问题
一段漏洞百出(有点夸张)的代码,从何谈起效率呢?
------解决思路----------------------
一般登录验证写在一个包含文件里,或者一个函数里;另外如果你的dh_member 表字段很多情况下就不要用select * 了,而是select 你需要的字段
------解决思路----------------------
我去。这个阶段你关心性能问题干毛。。。
还是先练好扎马步,再考虑轻功怎么飞的更快吧。
------解决思路----------------------
无论是
$mbase_date = mysql_query("select * from dh_member where `uid`=" . $_COOKIE["uid"] ." and `mck`=1",$con);
还是
$mbase_date = mysql_query("select * from dh_member where `uid`={$_COOKIE["uid"]} and `mck`=1",$con);
变量 $con 既没有传入,已没有声明为全局变量,这样会因为数据类型不对而不能工作
函数中除 $mbase_date 外的 $mbase_XXXX 变量都是局部变量,因此即便有了查询结果,也等于没做
------解决思路----------------------
有的只是在函数外面,请你认真阅读手册中关于变量的作用域的章节!
global $mbase_sex, $mbase_add, $mbase_tel, $mbase_sgao, $mbase_unick, $mbase_sri, $mbase_photo, $mbase_attest, $mbase_mpower, $mbase_email, $mbase_mextime, $mbase_mgold, $mbase_cybnum;
function marrbase()
{
if(isset($_COOKIE["uname"]) && isset($_COOKIE["uid"]))
{
$mbase_date = mysql_query("select * from dh_member where `uid`=" . $_COOKIE["uid"] ." and `mck`=1",$con);
$mabse = mysql_fetch_array($mabse_date);
$mbase_sex = $mbase["sex"];
$mbase_add = $mbase["add"];
$mbase_tel = $mbase["tel"];
$mbase_sgao = $mbase["sgao"];
$mbase_unick = $mbase["unick"];
$mbase_sri = $mbase["sri"];
$mbase_photo = $mbase["photo"];
$mbase_attest = $mbase["attest"];
$mbase_mpower = $mbase["mpower"];
$mbase_email = $mbase["email"];
$mbase_mextime = $mbase["mextime"];
$mbase_mgold = $mbase["mgold"];
$mbase_cybnum = $mbase["cybnum"];
}
else
{
exit;
}
}
我定义了一个函数 marrbase(),如果用户未登录则显示登录界面,如果已经登录则调用该函数:
if(!isset($_COOKIE['uname']) || !isset($_COOKIE['uid'])) {?>
...
}
else{
marrbase();
...
}?>
我总觉得这样会很浪费服务器资源,有没有更好的办法实现呢?
------解决思路----------------------
你先不要耽心资源浪费问题
而是先解决一下你的代码能否正确运行的问题
一段漏洞百出(有点夸张)的代码,从何谈起效率呢?
------解决思路----------------------
一般登录验证写在一个包含文件里,或者一个函数里;另外如果你的dh_member 表字段很多情况下就不要用select * 了,而是select 你需要的字段
------解决思路----------------------
我去。这个阶段你关心性能问题干毛。。。
还是先练好扎马步,再考虑轻功怎么飞的更快吧。
------解决思路----------------------
无论是
$mbase_date = mysql_query("select * from dh_member where `uid`=" . $_COOKIE["uid"] ." and `mck`=1",$con);
还是
$mbase_date = mysql_query("select * from dh_member where `uid`={$_COOKIE["uid"]} and `mck`=1",$con);
变量 $con 既没有传入,已没有声明为全局变量,这样会因为数据类型不对而不能工作
函数中除 $mbase_date 外的 $mbase_XXXX 变量都是局部变量,因此即便有了查询结果,也等于没做
------解决思路----------------------
有的只是在函数外面,请你认真阅读手册中关于变量的作用域的章节!
相关文章
相关视频