欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php mysqli::close()

程序员文章站 2022-03-04 07:56:20
...
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

相关标签: php mysqli::close()