Здесь я вижу 2 вопроса:
первый:
$query = $this->default->update('tblVisitorCounter', $data);
Я полагаю, вы хотите использовать конфигурацию БД по умолчанию.
и иметь конфигурацию базы данных, такую как:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name'
// etc.
);
Тогда вам нужно куда-нибудь загрузить свою БД, например, ваш контроллер с $this->load->database();
и вызвать базу данных с $this->db->
примечание: вы, очевидно, можете использовать $default['your_config_option']=array()
, а затем вызывать базу данных, как и вы.Это просто мнение, но, как написано выше в руководстве по CI, некоторые новые пользователи могут запутаться при использовании $this->default->
.
см. Конфигурация базы данных CI и подключениев вашу базу данных
секунда:
первая строка вашего кода
$data = array('lngCount' => 'lngCount + 1');
создает массив со значением string , связанным с ним, что правильно отражается в сообщении
UPDATE "tblVisitorCounter" SET "lngCount" = 'lngCount + 1' WHERE"strYear" = '2018'
, чтобы увеличить, вам нужно использовать $this->db->set()
, чтобы увеличить значение поля и получить + 1
из строки, устанавливая третий параметр set()
в false, что предотвратит экранирование данных, поэтому поле будет увеличено.см. обновление данных
, затем вы можете легко обновить свою базу данных, например:
$this->load->database();
$this->db->set('lngCount', 'lngCount+1', FALSE);
$this->db->where('strYear', date("Y");
$query = $this->db->update('tblVisitorCounter');