很多的框架都有配置文件,填写数据库名,连接,问题是连接是连接了,但是整个过程中貌似并没有关闭连接,比如实例化控制器,调用它的方法,这个过程就结束了。而这个方法是我们自己写的,,也没人会去写关闭mysql_close();那么问题来了,这个进程一直开着,如果有许多人同时访问,,服务器不要挂了吗。。普通的网页不是都是开始连接,,执行程序,,执行完关闭连接,这样在客户端和服务端的进程就没了。和服务端没关系了,除非再次请求连接框架是怎么处理的,,或者是我理解错了???

解决方案 »

  1.   

    mysql_close
    (PHP 4, PHP 5)mysql_close — 关闭 MySQL 连接mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接。 通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。参见释放资源。 
      

  2.   

    mysql_connectNote: 脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。这些都是php手册写的 呵呵
      

  3.   

    每个客户端浏览器请求服务器端,比如请求apache,那么apache会fork一个子进程利用php去处理这个请求,php处理结果交给apache,apache再把最终的http头和body回馈给浏览器,如果没开keep-alive支持apache这个子进程会立即关闭监听,php挂靠的钩子会启动gc,把占内存的该清除的东东全部清除掉,比如你的mysql连接资源。
      

  4.   

    一般数据库连接都用的是:mysql_connect
    这个函数的特点是,脚本执行完毕之后自动断开,所以不用mysql_close
    如果你用的是mysql_pconnect,就需要自己手动去关闭了
      

  5.   

    补充一下
    mysql_connect(server,user,pwd,newlink,clientflag)
    clientflag参数:如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面被用同样的参数调用过。
      

  6.   


    楼上正解,没有用长连接的话,脚本结束后制动释放连接,不需要显式的调用mysql_close()关闭连接的。