在不同的PHP页面中使用相同的MySQL连接

Cra*_*ker 4 php mysql connection

我正在为我的大学项目用PHP创建一个简单的Web应用程序.我正在使用MySQL数据库.

我在login.php中连接到数据库.连接后,我将连接分配给$ _SESSION ["conn"],然后重定向到main.php.

在main.php中我写了$ conn = $ _SESSION ["conn"].但$ conn中的连接不起作用.

我认为,当login.php脚本结束时,连接将关闭.所以我尝试使用mysql_pconnect而不是mysql_connect,但这也不起作用.

我知道我可以在每个PHP文件中重新连接到数据库.但我不想这样做.我想在所有PHP文件中使用相同的连接.

nor*_*ron 9

您应该在单独的文件(如db.php)中进行连接调用,而不是在会话中保存数据库连接,然后从每个脚本中请求它.例如,将连接放在db.php中:

mysql_connect('...', '...', '...');
mysql_select_db('...');
Run Code Online (Sandbox Code Playgroud)

然后在login.php中引入它:

require('db.php');
$res = mysql_query('...');
Run Code Online (Sandbox Code Playgroud)

然后,您可以对需要访问数据库的每个PHP文件执行相同操作,并且您只需在一个文件中更改数据库访问凭据.


Cha*_*les 6

连接后,我将连接分配给$ _SESSION ["conn"],然后重定向到main.php.

您可能想要阅读PHP会话.您无法在会话中存储资源(数据库连接,文件句柄等),因为它们无法序列化和存储.

请记住,每次访问PHP脚本都会调用PHP解释器的新实例(通过CGI,通过FastCGI或通过内置模块),并调用脚本的新实例.脚本调用之间没有任何共享,因为当脚本退出时整个环境都会消失.

其他答案是正确的 - 您需要在每次脚本调用时连接到数据库.为方便起见,将连接放在公共包含文件中.