手册上说主要有两个区别
1.不重复发出连接请求
2.mysql_close不起作用第一点有点不明白。 那是不是我 mysql_connect  不再次发出请求   也不中途mysql_close  就和 mysql_ pconnect  一样了呢。如果是这样 那我定义一个函数function  connect(){
  
   static $connect_id;
   if( !$connect_id )
      $connect_id = mysql_connect("localhost","hao","hao");
   return $connect_id;}
外面调用 这个函数来连接数据库。  connect()
就不会出现重复发出连接请求啦。 
那是不是和mysql_ pconnect 一样了呢欢迎大家回答   谢谢
MySQL数据库php

解决方案 »

  1.   

    resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )当你没有为 $new_link 指定true值时,他们的行为是一样的。同样的参数第二次调用 ,将不会建立新连接,而将返回已经打开的连接标识
      

  2.   

    那是不是我 mysql_connect 不再次发出请求也不中途mysql_close 就和 mysql_ pconnect 一样了呢。
    不是!
    数据库连接分为两个阶段
    第一阶段:建立与数据库服务器的物理连接
    第二阶段:登录数据库服务器,建立与数据库的业务链接对于 mysql_connect, mysql_close 将切断这两个连接(php程序结束后会自动调用 mysql_close)
    对于 mysql_pconnect,mysql_close 不起作用。php程序结束后自动切断到数据库的业务链接。而保留物理连接,准备复用
      

  3.   


    版主 谢谢你的回答。 我还不怎么明白你指的mysql_pconnect复用。  请问可以跨脚本复用不。 比如A脚本用了mysql_pconnect ,然后在A脚本未执行完的时候开了B脚本。 那B脚本可以用到A脚本的连接,而不用再次连接数据库不。mysql_pconnect 有哪些优势呢   我看到有些网上的数据库操作类; 没用这个。
    不知道作用大不大呢。
      

  4.   

    数据库连接总是必要的
    通常网络连接都比较慢,也就是说如果不切断到数据库的物理连接的话,下次访问可能就要快些(前提是上次连接时的网络通道可以复用)
    长连接一般用在web服务与数据库服务不在同一台机器上的场合像你描述的“在A脚本未执行完的时候开了B脚本”情况,是不能复用连接的,因为复用的前提是连接处于空闲状态
      

  5.   


    谢谢版主  我大概明白了。
    这句话我要再想一下为什么 
      长连接一般用在web服务与数据库服务不在同一台机器上的场合