理解PHP';s数据库连接变量
数据库连接变量,理解PHP';s数据库连接变量,php,postgresql,Php,Postgresql,数据库连接变量,$dbconn如何只能有一个声明? 我的登录脚本基于 如果用户未通过身份验证,则会将其返回到登录页面 如果用户经过身份验证,他将获得$\u会话[“logged\u in”]=true 然后,当用户浏览主页或其他需要验证的页面时,他们只需检查是否设置了$\u会话[“auth”] 数据库变量仅位于index.php的开头: $dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=12
$dbconn
如何只能有一个声明?
我的登录脚本基于
$\u会话[“logged\u in”]=true代码>
$dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=123");
我不通过db\u close()
在我的代码中的任何地方连接。
我将我的登录脚本源代码设置为index.php,它使用我的数据库
但是,当我的脚本中没有变量声明时,我会收到无法访问db的标准警告。如果我将声明添加到每个脚本中,我就可以访问数据库。我们需要首先了解PHP是如何在这里运行的,然后才能深入研究广泛的数据库连接世界 每个PHP页面请求触发一个新的PHP脚本。虽然可以打开会话,但这只是一个内部PHP构造。数据库将此视为连接到服务器的新连接/进程。因此,只要调用
pg_connect
code,它就会在数据库上为它创建一个新进程。否则,博士后不知道你是谁,也不知道你想使用什么课程。此外,一旦父进程死亡,它通常会终止Postgres会话(在本例中,PHP脚本运行,然后在完成后死亡)。有时这些会让僵尸在博士后的街道上游荡,但总的来说,这只会杀死他们
如果您想在PHP脚本中使用SQL代码,您必须在调用Postgres之前连接到该脚本中的数据库。如果我记得您要重定向到login.PHP的另一个问题?这意味着dbconn变量不存在,因为它是在另一个页面上初始化的 如果您需要index.php中的login.php,它就可以工作了
$dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=123");
require_once('login.php');
我的实验表明,这一事实不可能是真的:我需要index.php中的login.php,而代码中没有两次$dbconn声明——两次警告。似乎有必要向login.php添加$dbconn变量。login.php是类还是函数?如果是这样,它将没有所需的变量范围。除非您使用全局$dbconn;从函数/classIt内部看,两者都不是。我在很多php文件中都有这些代码,我刚刚发现从具有数据库连接的文件中获取变量的一种方法是将db中的数据保存到一个变量中,然后将该变量作为函数的参数传递到第二个文件中。