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


我使用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());
}

这是一个好习惯吗?有一个更好的方法吗?


7600
2018-02-11 22:05


起源



答案:


要指定默认架构,您应该设置 SEARCH_PATH 代替。

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

您还可以为每个数据库用户设置默认的search_path,在这种情况下,上述语句将变为冗余。

ALTER USER user SET search_path TO accountschema;

12
2018-02-11 23:35