>백엔드 개발 >PHP 튜토리얼 >php mysqli::close()

php mysqli::close()

WBOY
WBOY원래의
2016-06-23 14:35:571157검색

Anonymous (24-Apr-2010 05:43)

 

The mysqli_close() function and object method only remove the ability to use the mysql object again in the script, essentially on the surface only nulling out all object parameters.
过程化的mysqli_close()函数和面向对象的方法调用只是不让用户在此后的脚本中再使用mysql对象,基本上只在表面上归零所有对象参数

At least with PHP5.3.2 and Windows connecting by tcp, this differs by the old mysql_close() function in that it does not actually close out the tcp socket being used.  You should always use mysqli_kill() function before mysqli_close() to actually close and free up the tcp socket being used by PHP.  Garbage collection after script execution nor mysqli_close() do not kill the tcp socket on their own.  The socket would otherwise remain in 'wait' state for approximately 30 seconds, and any additional page loads/connection attempts would only add to the total number of open tcp connections.  This wait time does not appear to be configurable via PHP settings.

至少在利用windows的tcp连接的这个版本的php中,旧的函数并没有真正的关闭正在被使用的tcp连接,你应该总是在调用mysqli_close()前使用mysqli_kill()函数,确保释放php正在使用的tcp套接字连接。脚本结束后执行gc要么mysqli_close()是不会自己杀掉这个tcp连接的。这个tcp连接会保持大约30秒的等待状态,期间任何页面的加载或连接的尝试都会增加连接的总数,而这个等待时间似乎在php的配置文件中是不能设置的


Also as of this version, mysqli created links cannot be "deactivated", and will continue to accumulate in process memory until the PHP server or process is restarted, essentially making mysqli.max_links = -1 required.

另外在这个版本中,mysqli创建的连接是不能被设置为无效的,而且连接会在这个进程中积累,知道php服务器或者进程重启,所以可以设置mysqli.max_links = -1

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:php安全다음 기사:php招聘