两个php脚本之间不持久的持久连接

两个php脚本之间不持久的持久连接,php,mysqli,persistent-connection,Php,Mysqli,Persistent Connection,我在一个php文件中创建了一个临时表,并希望在另一个php文件中访问它。脚本按顺序运行。我使用了mysqli,并在主机名前加了p: 问题是在我的第二个php文件中,我无法访问我的临时表。所以我想知道这是否可行?如果是,怎么做?我正在使用WAMP服务器 不可能,直接。当用于建立临时表的连接关闭时,临时表将被销毁。当您的“创建”脚本关闭时,它的数据库连接关闭,mysql将进行清理,包括销毁临时表 这意味着当你的“使用”脚本启动时,它会得到一个新的连接,没有第一个脚本所做的任何事情 PHP中有可用的持

我在一个php文件中创建了一个临时表,并希望在另一个php文件中访问它。脚本按顺序运行。我使用了mysqli,并在主机名前加了p:


问题是在我的第二个php文件中,我无法访问我的临时表。所以我想知道这是否可行?如果是,怎么做?我正在使用WAMP服务器

不可能,直接。当用于建立临时表的连接关闭时,临时表将被销毁。当您的“创建”脚本关闭时,它的数据库连接关闭,mysql将进行清理,包括销毁临时表

这意味着当你的“使用”脚本启动时,它会得到一个新的连接,没有第一个脚本所做的任何事情

PHP中有可用的持久连接,但这些连接存在于一个池中,并且无法控制任何特定脚本从该池中获取的连接。你可能会很幸运,收到两个不同脚本的相同连接,但这纯粹是偶然的

您需要一些其他的第三个脚本来持续运行,以保持mysql连接的打开,同时保留临时表。另外两个脚本将与第三个脚本通信。

来自

然而,mysqli扩展的持久连接提供了内置的清理处理代码。mysqli执行的清理包括:

(其他内容也值得一读,但重要的是)

  • 关闭并删除临时表

简而言之,临时表就是临时的。它不打算用于其他目的,只是为了一个特定的操作临时存储一些数据。如果你想要一个更持久的东西,考虑使用内存存储引擎的具体表。 让我们看看你试过什么。提醒:我们不是来为您创建代码的。根据您的需求判断,您需要的不是一个临时表,而是一个实际的表。在这种情况下,您的问题就消失了,因为两个脚本都可以访问相同的数据源。@Mjh,我想使用临时表,因为在第二个脚本中,我从中读取数据,然后删除它。我认为在性能方面,创建临时表可能更好,但我可能错了。在
WAMP
的情况下,您所写的可能是正确的,但我进行了测试。我将
php fpm
pm.start\u servers=2
pm.max\u requests=0
一起使用,以便在本测试中,进程不会退出。我通过创建一个持久的PDO连接来连接MySQL。在MySQL的终端中,我通过发出
showProcessList\G显示id为6的1个连接。我“锤打”我的php端点,它执行select查询。在500个http请求之后,发出
showProcessList\G显示一个相同的活动连接。如果站点只有一个用户,并且站点上从来没有2个以上的并行请求,那么池中可能只有1个pcon。但一旦2+个脚本并行运行,它们将建立两个连接,现在所有赌注都取消了显示不同的连接过程。考虑到我可能错了,我想看看其他人对此有何看法,因为我知道仓促测试肯定会导致某些地方出错:)我正在使用nginx和
wrk
来模拟连接。如果是一个或两个用户,连接由nginx多路复用,那么这真的很重要吗?这就是fastcgi应用程序的魅力所在。感谢您对这个问题的深入了解,这是一个很好的解释。是的,我读过,但仍然认为这是可能的。混凝土表用内存存储引擎是什么意思?