gpt4 book ai didi

php - 是否有标准的 DSN 格式?

转载 作者:行者123 更新时间:2023-12-02 02:58:47 27 4
gpt4 key购买 nike

PHP PDO 使用这种风格:

MySQL

mysql:host=hostname;dbname=databasename 在各自单独的参数中使用用户名和密码

PostgreSQL

pgsql:host=主机名;dbname=数据库名;user=用户名;password=密码

但是当在 Github 上搜索 DSN 解析器时,他们似乎使用了完全不同的格式,如下所示:

mysql://user:pass@hostname:port/databasename

我的问题是,实际上是否存在每种语言都接受的标准 DSN 格式?

最佳答案

让我们看看什么是 DSN

DSN 代表数据源名称。但这也称为数据库源名称DSN 术语也与连接字符串 重叠。大多数系统不区分 DSN连接字符串,并且该术语通常可以互换使用。

DSN 属性可能包括但不限于:

  1. 数据源名称
  2. 数据源的位置
  3. 可以访问数据源的数据库驱动程序的名称
  4. 用于数据访问的用户 ID(如果需要)
  5. 用于数据访问的用户密码(如果需要)

以上信息取自wiki

通常,许多数据库连接语言都维护以下格式的连接字符串。这可能是一个社区标准。但是我没有看到DSN 的任何规范。

scheme://username:password@host:port/dbname?param1=value1&param2=value2&...

有几种方法可以连接到数据库。因此,有一些通用属性可用于所有类型的数据库连接。请参阅以下示例:

通过套接字连接到数据库

mysql://user@unix(/path/to/socket)/dbname

在非标准端口上连接到数据库

pgsql://user:pass@tcp(localhost:5555)/dbname

使用选项连接到 Unix 机器上的 SQLite

sqlite:////full/unix/path/to/file.db?mode=0666

使用选项连接到 Windows 机器上的 SQLite

sqlite:///c:/full/windows/path/to/file.db?mode=0666

使用 SSL 连接到 MySQLi

mysqli://user:pass@localhost/pear?key=client-key.pem&cert=client-cert.pem

连接到 MS Access 有时需要 admin 作为用户名

odbc(access)://admin@/datasourcename

使用特定游标连接到 ODBC

odbc(access)://admin@/datasourcename?cursor=SQL_CUR_USE_ODBC

这里我分别提供了PostgreSQL和MySQL的两个链接。您会在那里找到他们如何使用 connection string 连接数据库。

关于php - 是否有标准的 DSN 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60465376/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com