добавление ошибки базы данных codeigniter

#php #database #codeigniter #phpmyadmin

#php #База данных #codeigniter #phpmyadmin

Вопрос:

Произошла ошибка базы данных

Номер ошибки: 1146

Таблица ‘gtv.1tbpost’ не существует

ВСТАВИТЬ В 1tbpost ( post_title ) ЗНАЧЕНИЯ («)

Имя файла: C:/xampp/htdocs/1/system/database/DB_driver.php

Номер строки: 691


database.php /

 $active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'gtv',
    'dbdriver' => 'mysqli',
    'dbprefix' => '1',
    '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
);
  

Модель:

 public function add(){
            $data=array(

            'post_title'=>$this->input->post('title'),

            );
        $this->db->insert('tbpost',$data);
        }
  

контроллер:

    public function add_validate(){
        $this->load->library('form_validation');

        $this->form_validation->set_rules('title', 'Title', 'trim|required|min_length[6]|regex_match[/^[A-Za-z0-9 .] $/]');
        $this->form_validation->set_rules('image', 'Image', 'trim');
        $this->form_validation->set_rules('text', 'Text', 'trim|required|min_length[2]');

        $this->form_validation->set_message('required', '%s is required.');
        $this->form_validation->set_message('min_length', 'minimum characters for %s is %s');
        $this->form_validation->set_message('regex_match', '%s is not in the correct format');

        if($this->form_validation->run() == FALSE){
            if($this->input->post('add') == "post"){
                $this->gtvmod->add();
            }else if($this->input->post('add') == "save"){
                $this->index();
            }else if($this->input->post('add') == "cancel"){
                $this->index();
            }else{
                $this->index();
            }

        }else{
            if($this->input->post('add') == "post"){
                $this->add();//punta model
            }else if($this->input->post('add') == "save"){
                $this->index();//punta model
            }else if($this->input->post('add') == "cancel"){
                $this->index();//punta model
            }else{
                $this->index();//punta model
            }
        }
    }
  

проблема Я указываю, что моей таблицей является ‘tbpost’, но ошибка говорит о том, что я вставляю в таблицу ‘1tbpost’ .

Комментарии:

1. выполняете ли вы другие успешные вставки в другом месте приложения?

2. @charlietfl Я только начинаю codeigniter

3. отлично… просто любопытно, есть ли у вас какие-либо другие вставки базы данных, работающие или выбранные даже в этом отношении. Что-то где-то неправильно настроено … не уверен, где, хотя

4. Покажите нам свой /application/config/database.php содержание

5. имя таблицы в сообщении об ошибке и запросе вставки выглядит иначе

Ответ №1:

В вашем database.php у вас есть 'dbprefix' => '1', , и вам нужно изменить его на 'dbprefix' => '',

Ответ №2:

вы вызвали несуществующую таблицу в своей базе данных, поэтому проверьте имена таблиц, которые вы вызвали.

если у вас есть библиотека проверки формы, проверьте правила, возможно, имя таблицы там скрыто, ха-ха

расслабьтесь и наслаждайтесь программированием!