PHP&;mysqli:持久连接和交互连接有什么区别?

PHP&;mysqli:持久连接和交互连接有什么区别?,php,mysqli,persistent-connection,interactive-mode,Php,Mysqli,Persistent Connection,Interactive Mode,以下各项之间有什么区别: // Persistent connection $mysqli->real_connect("p:" . $host, $user, $pass, $db, null, null, 0); 及 甚至这个 // Interactive AND persistent $mysqli->real_connect("p:" . $host, $user, $pass, $db, null, null, MYSQLI_CLIENT_INTERACTIVE); 当

以下各项之间有什么区别:

// Persistent connection
$mysqli->real_connect("p:" . $host, $user, $pass, $db, null, null, 0);

甚至这个

// Interactive AND persistent
$mysqli->real_connect("p:" . $host, $user, $pass, $db, null, null, MYSQLI_CLIENT_INTERACTIVE);

当您使用第一个链接时,mysqli会尝试查找已使用相同主机、用户名和密码(而不是端口)打开的(持久)链接。如果找到一个,将返回它的标识符,而不是打开新连接


脚本执行结束时,与SQL server的连接不会关闭。相反,该链接将继续开放供将来使用。

只是我对文档的解释

永久性连接将无限期地保持打开状态。不支持非持久性连接

这些文档比真正的_connect()文档更清晰:

mysql_pconnect()与mysql_connect()非常相似,但有两个主要区别

首先,在连接时,函数将首先尝试查找已使用相同主机、用户名和密码打开的(持久)链接。如果找到一个,将返回它的标识符,而不是打开新连接

其次,当脚本执行结束时,与SQL server的连接不会关闭。相反,该链接将保持打开状态以供将来使用(mysql_close()不会关闭由mysql_pconnect()建立的链接)

因此,这种类型的链接称为“持久链接”

关于:

MYSQLI_客户端_交互

在关闭连接之前,允许交互\u超时秒(而不是等待\u超时秒)不活动。客户端的会话等待超时变量将设置为会话交互超时变量的值

通常,非持久性连接在等待\u超时变量指定的秒数后关闭。使用此标志,它们将在interactive_timeout变量指定的秒数后关闭


根据我的解释,这意味着MYSQLI\u CLIENT\u INTERACTIVE不会改变持久连接的行为。

虽然有点帮助,但这个答案不够详细,我无法对此进行投票。但是谢谢你的回答!
// Interactive AND persistent
$mysqli->real_connect("p:" . $host, $user, $pass, $db, null, null, MYSQLI_CLIENT_INTERACTIVE);