提示:通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。什么时候需要手动关闭MySQL已打开的连接?还是让脚本执行完毕后自动关闭呢?怎么算脚本执行完毕?是碰到“?>”标签吗?

解决方案 »

  1.   

    当你查询结束,不在需要使用数据库了,并且需要对得到的数据做比较耗时的操作时
    建议先关闭数据库连接,以便他人使用怎么算脚本执行完毕?
    当所涉及的代码都执行完了,所有该输出的(包括嵌入的html)都输出了。就是脚本执行完毕
      

  2.   

    弱弱的问一下:<!--连接数据库-->
    <?php
    //连接数据库
    @mysql_connect('127.0.0.1', 'root', '') or die('连接数据库失败。');
    //打开数据库
    mysql_select_db('test') or die('打开数据库失败。');
    //使用GBK中文编码
    mysql_query("set names 'GBK'");
    ?>这是个数据库的文件,我在别处引用,岂不是引用进来就关闭了。mysql_query("set names 'GBK'");后面的“?>”
    它这个定义好模糊啊~~~
    我还是手动关闭吧。
    自动的不靠谱啊~
      

  3.   

    不必特地关闭,如提示所说的.脚本执行完毕会自动关闭,并不是遇到?>结束语才关闭,而是整个文件执行完毕.php会自动检测非永久链接是否不需要了,会自动回收并释放内存.
    除非你用的是永久链接pconnect
    当初从asp学习完,初识PHP的时候,也是在烦恼如何关闭数据库链接,寻找和ASP一样的关闭语句,但其实不需要的.
      

  4.   

    理论上只要不是长连接就应该尽快调用,只要后面的代码跟查询无关就应该主动close,不应等连接自动(被动)关闭
      

  5.   

    我一般是对数据库的操作结束后调用 $db=db::getInstance();

    $sql="SELECT * FROM test WHERE user_name='jack'";

    $result=db::query($sql);

    while($row=mysql_fetch_array($result)){

    $array[]=$row[answer];

    }

            $db->close();