gpt4 book ai didi

php - 理解PHP的数据库连接变量

转载 作者:行者123 更新时间:2023-11-29 13:07:37 25 4
gpt4 key购买 nike

你怎么能只有一个数据库连接变量的声明,$dbconn

我的登录脚本基于 following procedure

  1. 如果用户未通过身份验证,则返回登录页面
  2. 如果用户通过身份验证,他会得到一个 $_SESSION["logged_in"] = true;
  3. 然后当用户浏览主页或其他需要授权的页面时,他们只需检查是否设置了 $_SESSION["auth"]。

我只在 index.php 的开头有数据库变量:

 $dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=123");

我的代码中的任何地方都没有通过 db_close() 进行连接。我将我的登录脚本提供给使用我的数据库的 index.php。

但是,当我的脚本中也没有变量声明时,我会收到无法访问数据库的标准警告。如果我将声明添加到我的每个脚本,我就可以访问数据库。

最佳答案

我们需要先了解 PHP 如何运行这里的节目,然后才能深入研究广泛的数据库连接世界。

每个 PHP 页面请求都会触发一个新的 PHP 脚本。虽然您可能打开了 session ,但那只是一个内部 PHP 构造。只是。数据库将此视为连接到服务器的新连接/进程。因此,只要您调用 pg_connect 代码,它就会在数据库上为它创建一个新进程。否则,Postgres 不知道你是谁或你想使用什么 session 。此外,一旦父进程终止,它通常会终止 Postgres session (在这种情况下,PHP 脚本运行并在完成后终止)。有时这些可能会让僵尸在 Postgres 的街道上游荡,但总的来说,它只会杀死它们。

如果您想在 PHP 脚本中使用 SQL 代码,则必须在脚本中连接到数据库,然后再调用 Postgres。

关于php - 理解PHP的数据库连接变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1269993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com