标签: php-pgsql

PHP 启动:无法加载动态库 PGSQL

我正在尝试使用以下命令运行 Symfony 3.x:

  • Ubuntu 16.04
  • PHP 7.0
  • 金克斯

我想与我创建的 PGSQL 数据库进行交互,但出现此错误:

PHP警告:PHP启动:无法加载动态库'/usr/lib/php/20151012/php_pdo_pgsql.dll' - /usr/lib/php/20151012/php_pdo_pgsql.dll:无法打开共享对象文件:没有这样的文件或目录在未知的第 0 行

[Doctrine\DBAL\Exception\DriverException] 驱动程序发生异常:找不到驱动程序
[Doctrine\DBAL\Driver\PDOException] 找不到驱动程序

[PDOException] 找不到驱动程序

所以我查看了我的phpinfo(),似乎启用了 pgsql 驱动程序

phpinfo() 结果

谁能帮我解决这个问题?

php pdo php-pgsql

10
推荐指数
2
解决办法
3万
查看次数

如何直接在postgresql中执行存储过程?

我创建了一个过程,如:

CREATE OR REPLACE FUNCTION insert_user_ax_register(
   user_name character varying(50), 
   password character varying(300), 
   role_id character varying(10), 
   created_dt date, 
   status boolean, 
   email character varying(50), 
   join_date character varying(30), 
   phone_no bigint, 
   client_address character varying(200), 
   full_name character varying(100), 
   financial_year character varying(10)) 
RETURNS void 
AS $BODY$ 
declare 
begin 
  INSERT INTO ax_register(user_name,password,role_id,created_dt,status,email,join_date,phone_no,client_address,full_name,financial_year) 
  VALUES (user_name,password,role_id,now(),true,email,join_date,phone_no,client_address,full_name,financial_year); 
end 
$BODY$ 
LANGUAGE plpgsql VOLATILE
Run Code Online (Sandbox Code Playgroud)

并试图像这样执行它:

SELECT * from insert_user_ax_register('debasrita','debasrita','client001',now(),'t','abc@gmail.com',now(),'ctc','debasrita','2014-15',9090909090);
Run Code Online (Sandbox Code Playgroud)

但它会引发以下错误:

错误:函数insert_user_ax_register(未知,未知,未知,带时区的时间戳,未知,未知,带时区的时间戳,未知,未知,未知,bigint)不存在SQL状态:42883提示:没有函数匹配给定的名称和参数类型.您可能需要添加显式类型转换.性格:16

请帮我解决这个问题.我是pgsql的新手,无法从谷歌找到任何解决方案.我在用pgsql 9.1.3

我可以知道实现目标的正确方法是什么?

postgresql php-pgsql

8
推荐指数
1
解决办法
4万
查看次数

我无法在 Mac Big Sur 上的 MAMP 中添加 pgsql PDO 驱动程序

我已经使用 PGAdmin4 安装了 MAMP 和 PostgreSQL,但是我遇到了一些问题。

我在终端中收到 psql“找不到命令错误”。我已添加export PATH=/Library/PostgreSQL/10/bin:$PATH~/.bash_profile,但是每当我重新打开终端时,都会再次出现相同的错误。

每当我尝试执行composerphp artisan在我的 Laravel 项目中执行时,我都会收到以下错误,但我仍然能够迁移数据库:

Warning: PHP Startup: Unable to load dynamic library 'pdo_pgsql' (tried: /usr/local/lib/php/pecl/20180731/pdo_pgsql (dlopen(/usr/local/lib/php/pecl/20180731/pdo_pgsql, 9): image not found)

Warning: PHP Startup: Unable to load dynamic library 'pgsql' (tried: /usr/local/lib/php/pecl/20180731/pgsql (dlopen(/usr/local/lib/php/pecl/20180731/pgsql, 9): image not found)

每当尝试浏览项目和PDO Drivers列表中的phpinfo()mysql 和 sqlite 可用,但 pgsql 不可用时,都会出现“未找到驱动程序”错误。

MAMP
PostgreSQL 10
PHP:7.3.21
操作系统:MAC Big Sur

postgresql mamp psql php-pgsql

5
推荐指数
1
解决办法
1483
查看次数

通过 PHP PDO 通过 SSL 连接到 PGSQL

我可以在哪里传递客户端证书以连接到 PostgreSQL 数据库?我是否必须在PDO 构造函数中的dsn或参数中传递这些证书?options我无法在网上找到任何文档。

我在 Ubuntu 16.04.1 上使用 PHP 7.0.22。我为 pgsql 驱动程序启用了 SSL 支持。我确实在 PDO 类中找到了这些常量:PDO::MYSQL_ATTR_SSL_CA以及PDO::MYSQL_ATTR_SSL_KEY其他一些常量,但这些显然是针对 mySQL 而不是 PGSQL。


编辑

这是基于以下答案的有效安全实现:

$dbh = new PDO('pgsql:localhost=host;port=26257;dbname=bank;sslmode=require;sslcert=[path]/client.maxroach.crt;sslkey=[path]/client.maxroach.key;sslrootcert=[path]/ca.crt;',
    'maxroach', null, array(
      PDO::ATTR_ERRMODE          => PDO::ERRMODE_EXCEPTION,
      PDO::ATTR_EMULATE_PREPARES => true,
  ));
Run Code Online (Sandbox Code Playgroud)

php pdo php-pgsql

4
推荐指数
1
解决办法
9768
查看次数

事务回滚在 Postgresql 中不起作用

我正在研究 PostgreSQL 9.1.4 。

我将数据插入到两个表中,效果很好。

我希望对我的表应用事务,两个表都存在于同一数据库中。如果我的第二个表在任何时候失败,我的第一个表应该回滚。

我尝试将“max_prepared_transactions”中的属性设置为非零值/etc/postgres/postgres.conf。但事务回滚仍然不起作用。

sql postgresql phppgadmin postgresql-9.1 php-pgsql

3
推荐指数
1
解决办法
1万
查看次数

无法在Ubuntu 16.04上安装php5-pgsql

我将我的操作系统从Ubuntu 14.04更新到16.04版本,并安装了php 7,但我想使用php 5.6.所以我安装了php 5.6并告诉Apache使用该版本而不是php 7.

但我在安装php5-pgsql时遇到问题.

我试过这个教程,但是我收到了错误

"El paquete php5-pgsql noestádisponible,perosagúnotropaquete hace referenciaaél.Estopuede significar que el paquete falta,estáobsoletoosóloseencuentra disponible desde alguna otra fuente"

我能做什么?

php ubuntu php-pgsql

3
推荐指数
1
解决办法
9540
查看次数

安装 php7.0-pgsql - 无法找到包 php-pgsql

我正在尝试安装 php7.0-pgsql,但总是得到

E: 无法定位软件包 phpXXX-pgsql

我在尝试

 apt-get update
 apt-get install php7.0-pgsql=7.0.12-1+deb
Run Code Online (Sandbox Code Playgroud)

或者

apt-get install php7.0-pgsql=7.0.12-1
Run Code Online (Sandbox Code Playgroud)

或者

apt-get install php7.0-pgsql
Run Code Online (Sandbox Code Playgroud)

甚至

apt-get install php-pgsql
Run Code Online (Sandbox Code Playgroud)

总是有相同的结果。任何人都可以帮助我吗?

php debian apt apt-get php-pgsql

3
推荐指数
1
解决办法
8850
查看次数

在xammp中的Postgresql,phpPgAdmin

嗨,我在尝试启动phpPgAdmin时遇到此错误.

您的PHP安装不支持PostgreSQL.您需要使用--with-pgsql configure选项重新编译PHP.

我使用xampp ver 1.7.7,Postgresql 9.2.4 64位和phpPgAdmin 5.1

我已经做了以下事情:

  1. open "config.inc.php" found in C:\xampp\phpPgAdmin\conf\ and set  "extra_login_security" to false
        $conf['extra_login_security'] = false;

  2. Find php.ini file, in C: \ xampp \ php \ php.ini, 
  then look for the line " ; extension = php_pgsql.dll "remove tag ';' it so that the 
  result was" extension = php_pgsql.dll "
Run Code Online (Sandbox Code Playgroud)

(虽然我发现php.ini-生产和开发所以我取消了它们两者)

  3. open c:\xampp\apache\conf\extra\httpd-xampp.conf and in section <IfModule mime_module> add
 Alias /phppgadmin "c:/xampp/phpPgAdmin/"
<Directory "c:/xampp/phpPgAdmin">
AllowOverride AuthConfig
Order allow,deny
Allow from …
Run Code Online (Sandbox Code Playgroud)

php xampp phppgadmin php-pgsql

1
推荐指数
1
解决办法
6062
查看次数

标签 统计

php-pgsql ×8

php ×5

postgresql ×3

pdo ×2

phppgadmin ×2

apt ×1

apt-get ×1

debian ×1

mamp ×1

postgresql-9.1 ×1

psql ×1

sql ×1

ubuntu ×1

xampp ×1