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

Mar*_*ato 11 php sql postgresql pdo

我使用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());
}
Run Code Online (Sandbox Code Playgroud)

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

Kou*_*rev 13

要指定默认架构,您应该设置search_path.

$Conn->exec('SET search_path TO accountschema');
Run Code Online (Sandbox Code Playgroud)

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

ALTER USER user SET search_path TO accountschema;
Run Code Online (Sandbox Code Playgroud)