【问题标题】:PHP Postgres default connectionPHP Postgres 默认连接
【发布时间】:2013-01-08 12:07:00
【问题描述】:

PHP 中的 pg_query 和 pg_query_params 可以在没有在参数列表中指定连接资源的情况下执行,因此 PHP 将使用 pg_connect 打开的最后一个连接。

有没有办法检索 PHP 将使用的默认连接字符串,而不是试图找出它来自几个 PHP 文件的位置? get_default_dbConnection() 之类的东西?

谢谢。

【问题讨论】:

  • 可能值得一试pg-options(),但我不太确定它会为您提供哪些数据(也不是您实际需要哪些数据)。

标签: php database postgresql


【解决方案1】:

这并不意味着存在默认连接字符串,而是您不必提供引用该连接的参数。查看php: pg_query上的示例

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

在这个例子中,有$conn = pg_pconnect("dbname=publisher"),在对pg_query的调用中,他们传递了一个很长的$conn。那是连接参考。现在你也可以使用

$conn = pg_pconnect("dbname=publisher");
$result = pg_query("SELECT author, email FROM authors");

pg_query 现在将自动使用上次打开的连接(即 $conn)

更新:

您无法获取资源,PHP 使用内部方法 php_pgsql_get_default_link 获取默认连接但不会在任何地方返回它(参见源代码中的php-5.4.9\ext\pgsql\pgsql.c)。

您可以使用pg_dbnamepg_parameter_status 获取有关数据库名称或用户的信息

【讨论】:

  • 假设在 PHP 文件中遇到以下行: $result = pg_query("SELECT author, email FROM authors");我要问的是如何获取 pg_query 中使用的连接资源,而无需回溯代码以找到最后一个 pg_connect...
  • 无法获取资源,PHP使用内部方法php_pgsql_get_default_link获取默认连接但不会在任何地方返回(php-5.4.9\ext\pgsql\pgsql.c) .您可以使用pg_dbnamepg_parameter_status 获取有关数据库名称或用户的信息
猜你喜欢
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 2017-10-26
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多