DSN 连接和带有 @ 的密码

Vit*_*dev 2 php database passwords symbols dsn

我考虑切换到使用 DSN 连接的数据库访问库 - connect("mysql://login:password@database?options")。DSN 使用@ 作为分隔符。这是否意味着密码不能包含@符号?还有其他限制吗?

Sal*_*eri 7

任何特殊字符对于 DSN 来说都可能很棘手,特别是在语言/平台转义或特殊字符规则决定干预的情况下。

对于Pear 风格的 DSN (我想您正在使用它),使用URL 编码来保护特殊字符 ( @ == %40) 不被错误翻译应该是安全的。