使用 PHP PDO 设置 PostgreSQL 架构的最佳替代方案

Posted

技术标签:

【中文标题】使用 PHP PDO 设置 PostgreSQL 架构的最佳替代方案【英文标题】:Best alternative to set a PostgreSQL schema using PHP PDO 【发布时间】:2014-03-09 23:04:57 【问题描述】:

我正在使用 php PDO 访问具有各种模式的 PostgreSQL 数据库,所以首先我创建一个连接,然后设置正确的模式,如下所示:

$Conn = new PDO('pgsql:host=localhost;port=5432;dbname=db', 'user', 'pass');

$result = $Conn->exec('SET search_path TO accountschema');

if ( ! $result) 
    die('Failed to set schema: ' . $Conn->errorMsg());

这是一个好习惯吗?有没有更好的方法来做到这一点?

【问题讨论】:

【参考方案1】:

为了指定默认架构,您应该设置search_path。

$Conn->exec('SET search_path TO accountschema');

您还可以为每个数据库用户设置默认的 search_path,在这种情况下,上面的语句就变得多余了。

ALTER USER user SET search_path TO accountschema;

【讨论】:

以上是关于使用 PHP PDO 设置 PostgreSQL 架构的最佳替代方案的主要内容,如果未能解决你的问题,请参考以下文章

PHP PostgreSQL PDO 无法使用 LIKE 绑定参数

为啥 PHP PDO DSN 是 MySQL 与 PostgreSQL 不同的格式?

在 Centos 7.6 上为 PostgreSQL 安装 PHP 7.4 PDO 驱动程序

yii链接postgresql

将 PDO 与 PostgreSQL 一起使用时如何忽略问号作为占位符

PHP开发-PDO