我正在尝试使用 PHP 访问我的新 PGSQL 数据库。问题是我收到标题中给出的错误。当我尝试直接连接时。它有效,当我尝试通过 PDO 连接时,它会出现此错误。
我检查了什么:
- PHP.ini。所需的扩展名未注释(php_pgsql.dll和php_pdo_pgsql.dll)
- 确保这两个文件确实在 PHP 文件夹中。
使用简单的脚本确保数据库、主机、用户、密码和端口正确(如下所示)
这是我用于设置数据库的配置文件(我正确使用了 6 个数据库。所以我知道错误不在该文件中)
"Aeges":{ "pdo_driver":"odbc", "user":"XXXX", "password":"XXXX", "database":"test", "host":"localhost", "port":1233 }, "Postgre":{ "pdo_driver":"pgsql", "user":"XXXX", "password":"XXXX", "database":"ASN", "host":"localhost", "port":5432 } etc..
这是我检索信息的功能。我清理了一下以使其清楚
public static function findAvailableASN()
{
$Postgre = db\Factory::getInstance()->create('Postgre');
$stmt = $Postgre->prepare("select * from asnregel.asnregel");
if ($stmt->execute())
{
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
}
/* $connect = pg_connect("host=localhost port=5432 dbname=ASN user=XXXX password=XXXX");
if(!$connect) {
die("Error in connection: ".pg_last_error());
}
$sql = "select * from asnregel.asnregel";
$result = pg_query($connect,$sql);
if(!$result) {
die("Error in sql query: ".pg_last_error());
}
while($row = pg_fetch_array($result)) {
echo $row[0].'<br/>';
echo $row[1].'<br/>';
echo $row[2].'<br/>';
echo $row[3].'<br/>';
}
pg_free_result($result);
pg_close($connect); */
}
所以问题是第一部分不起作用(带有PDO的部分)。虽然评论(没有PDO的部分)确实如此。有点奇怪吧?
谁能帮我解决这个问题?