+ -
当前位置:首页 → 问答吧 → 关于新手学习PHP的几个问题(求高手回答下)

关于新手学习PHP的几个问题(求高手回答下)

时间:2011-10-12

来源:互联网

function Getclassid($id){
$sqltext = "select * from newsmenu where m_id='".$id."' ";
$rez = mysql_query($sqltext); 
if(!!$RS=mysql_fetch_array($rez)){

  $Getclassid=$RS['m_title'];
  }else {
  $Getclassid="没有标题";
  }
return $Getclassid;
mysql_free_result($rez);
mysql_close();}

第一个问题 上面函数中这么写对??return后是不是 mysql_free_result跟mysql_close();就不会执行到了...有N个这样的函数会不会很占用内存,正确的应该怎么写?



function Webpiccount($id){
$sqltext = "select p_id from mar_pic where p_pid='".$id."' ";
$num = mysql_num_rows(_query($sqltext));
return $num;
mysql_close();
}

第二个问题 上面函数mysql_num_rows这个怎么释放内存啊 这样释放?mysql_free_result(不带参数)?


第三个问题
关于require跟include中的mysql_close();

例如 idnex.php 
____________________________________________
require "top.php" 这个里面打开数据库
.....
....
...文章内容
.....

include "foot.php" 这个里面关闭数据库(里面的内容是mysql_close();)


我在foot页面里面 加上mysql_close();

是不是所有页面都能执行到mysql_close();



请高手回答下...本人刚学PHP 菜鸟一个...以前是跟这微软混..感觉不行..想转PHP ....

作者: amu1433   发布时间: 2011-10-12

第一个问题:
return 值之后会跳出函数。后面的代码不会执行。
只是函数而不调用的话,不会占用很多内存。

第二个问题:
释放资源的方式有unset(),mysql_close();closedir();mysql_free_result(resour $result)
其中mysql_free_result()可带参数可不带, 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放

第三个问题:
require跟include是引入文件。
如果是你这样的
类似于在一个文件中:
mysql_connect();
index的主题内容
mysql_close();
所以只要footer的页面都会执行mysql_close();

不过,如果不是长连接,一般情况下不需要显式执行mysql_close();php会在脚本执行完毕会自动释放资源。

作者: ohmygirl   发布时间: 2011-10-12

明白了点 也就是说第一个问题 可以这样解决

mysql_free_result($rez); 先释放内存
return $Getclassid; 然后返回
mysql_close(); 这个可以去掉..



第二个问题 是不是可以这样理解

mysql_free_result 这个可以有也可以没有..影响不是很大..页面执行完会自动mysql_free_result跟mysql_close


第三个问题 是不是可以这样理解


所有页面都include "foot.php" foot.php里面加上mysql_close 所有页面都回自动释放内存...

作者: amu1433   发布时间: 2011-10-12

根据许多人的说法,mysql_free_result()

如果结果集不是很大的话,没必要调用。

Using this function may actually increase the amount of memory used. In my case, the script used 208 bytes less memory when *not* using mysql_free_result().

作者: ohmygirl   发布时间: 2011-10-12

相关阅读 更多