0

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

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

谢谢。

4

1 回答 1

2

这并不意味着存在默认连接字符串,而是您不必提供引用该连接的参数。查看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有一个 long $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获取有关数据库名称或用户的信息

于 2013-01-08T12:31:43.363 回答