diff --git a/phpBB/phpbb/config/db.php b/phpBB/phpbb/config/db.php index 5c20bb5ec9..a346164db2 100644 --- a/phpBB/phpbb/config/db.php +++ b/phpBB/phpbb/config/db.php @@ -170,9 +170,9 @@ class db extends config if (!isset($this->config[$key])) { $sql = 'INSERT INTO ' . $this->table . ' ' . $this->db->sql_build_array('INSERT', array( - 'config_name' => $this->db->sql_escape($key), - 'config_value' => $this->db->sql_escape($new_value), - 'is_dynamic' => ($use_cache) ? 0 : 1)); + 'config_name' => $key, + 'config_value' => $new_value, + 'is_dynamic' => $use_cache ? 0 : 1)); $this->db->sql_query($sql); } diff --git a/tests/config/db_test.php b/tests/config/db_test.php index cf89341566..11c99435f8 100644 --- a/tests/config/db_test.php +++ b/tests/config/db_test.php @@ -86,6 +86,17 @@ class phpbb_config_db_test extends phpbb_database_test_case $this->cache->checkVar($this, 'config', array('foo' => '23', 'foobar' => '5')); } + public function test_set_new_json() + { + $json_value = '{"menu":{"id":"file","value":"File"}}'; + $this->config->set('foobar_json', $json_value); + $this->assertEquals($json_value, $this->config['foobar_json']); + + // re-read config and populate cache + $config2 = new \phpbb\config\db($this->db, $this->cache, 'phpbb_config'); + $this->cache->checkVar($this, 'config', ['foo' => '23', 'foobar_json' => $json_value]); + } + public function test_set_new_uncached() { $this->config->set('foobar', '5', false); diff --git a/tests/config/db_text_test.php b/tests/config/db_text_test.php index 97d7daaf07..32cfcce15a 100644 --- a/tests/config/db_text_test.php +++ b/tests/config/db_text_test.php @@ -46,6 +46,13 @@ class phpbb_config_db_text_test extends phpbb_database_test_case $this->assertSame('phpbb', $this->config_text->get('barz')); } + public function test_set_new_get_json() + { + $json_value = '{"menu":{"id":"file","value":"File"}}'; + $this->config_text->set('foobar_json', $json_value); + $this->assertEquals($json_value, $this->config_text->get('foobar_json')); + } + public function test_set_replace_get() { $this->config_text->set('foo', '24');