如何在 Codeigniter 中转义数据库连接详细信息中的字符

How to escape characters in database connection details in Codeigniter

我有一个数据库凭据,其中一些转义字符出现在密码中,例如 \ 和 '

下面是实际密码:12ru%DMRCy'\q!@W2aq

我想通过转义这些字符来使用该密码,但是 codeigniter 显示错误

在 database.php

中使用带双引号、单引号和转义字符串的密码时
'password' => "12ru%DMRCy'\q!@W2aq"
'password' => "12r\3u%DMRCy'\q!@W2aq"
'password' => '12r\3u%DMRCy\'\q!@W2aq'

显示如下错误。

消息:pg_connect():无法连接到 PostgreSQL 服务器:连接信息字符串中“\q!@W2aq'”后缺少“=”

然而,当尝试像下面这样回显时,它完美地打印了我的原始密码 12ru%DMRCy'\q!@W2aq

echo '12r\3u%DMRCy\'\q!@W2aq';
echo "12r\3u%DMRCy'\q!@W2aq";

下面是database.php

连接的示例代码
$db['staging_db'] = array(
    'dsn' => '',
    'hostname' => 'test.rds.amazonaws.com',
    'username' => 'test_username',
    'password' => "12r\3u%DMRCy'\q!@W2aq",
    'database' => 'staging',
    'dbdriver' => 'postgre',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE,
    'port' => 5432,
);

任何人都可以建议我如何在 database.php 中使用我上面提到的密码和 codeigniter?

我试过下面的代码

'password' => addslashes("12r\3u%DMRCy'\q!@W2aq")

它使用我的原始密码 12ru%DMRCy'\q!@W2aq 并连接到数据库。谢谢!

你可以像下面那样做。
addslashes($password); \\ 使用 addslashes 函数存储密码值

当你需要使用这个密码值时
stripslashes($password) \\ 使用 stripslashes 函数删除添加的斜线

希望对您有所帮助。