3

我的 php 脚本有问题,你可以在这里看到:http: //codepad.org/F0qhElRC

没有为来自孩子的每个连接打开新资源。我已经尝试使用 127.0.0.1 或我的本地网络 IP,但没有任何效果,mysql 中的 max_user_connections 也设置为 0 打开来自网络的连接为我提供了不同的网络资源。但在命令行中它使用相同。

在 mysql_connect 中,我指定 new_link 为真,我在 bd 类中放置了一个 __destruct 以在孩子被破坏时关闭连接。即使在我重新启动脚本后,关闭连接也不会使 php 打开一个新连接。该资源可能是免费的,因此我应该依靠它,但是在孩子们中,我也尝试过休眠,但这并不能使其运行新资源。

关于如何调试的任何建议?

基本上,我希望每个新脚本或子呼叫都有一个新的连接。

提前致谢。此致,

4

2 回答 2

2

您已经设法省略了所有相关代码,但是 PHP 中的许多数据库扩展会重用当前打开的连接,除非您明确指示它们不要这样做。如果您使用的是mysql_connect(),请查看$new_link参数:

mysql_connect — Open a connection to a MySQL Server
Report a bug
Description
resource mysql_connect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0 ]]]]] )

Opens or reuses a connection to a MySQL server.

.

新链接

如果使用相同的参数对 mysql_connect() 进行第二次调用,则不会建立新链接,而是返回已打开链接的链接标识符。new_link 参数修改了这种行为并使 mysql_connect() 始终打开一个新链接,即使之前使用相同的参数调用了 mysql_connect() 也是如此。在 SQL 安全模式下,此参数被忽略。

于 2011-06-28T14:25:37.543 回答
0

您正在使用sql.safe_mode(检查您的配置文件)吗?mysql_connect的文档表明在这种情况下会忽略 *new_link*。

于 2011-06-28T13:20:39.357 回答