Problem with codeigniter (mysqli) BD connection

Asked

Viewed 1,174 times

4

Guys, I made a registration form for newsletter. And when loading the database on autoload['libraries'], presents an error

Call to Undefined Function mysqli_init() in /home/softlove/public_html/system/database/drivers/mysqli/mysqli_driver.php on line 136

Can someone help me?

View-Form:

 <form action="index.php/usuario/newsletter">
                     <div class="form-group">
                         <label for="nome">Nome</label>
                            <input type="text" class="form-control" id="nome" name="nome" placeholder="Nome">
                     </div>
                     <div class="form-group">
                        <label for="email">Email</label>
                        <input type="email" class="form-control" id="email" name="email" placeholder="[email protected]">
                      </div>
                      <div align="center">

                      <button type="submit" class="btn btn-secondary">Cadastrar</button>
                      </div>
                    </form>

Model

<?php
class UsuarioDAO extends CI_Model {

    public function cadastrarDadosUsuario($nome, $email) {
       $this->load->library('database');
        $this->db->query("INSERT INTO signups (signup_nome, signup_email_address) VALUES (?, ?)", array($nome, $email));

        // Inserir código de tratamento de erros...
    }
}

Controller

<?php
class Usuario extends CI_Controller {


    public function newsletter() {
        $this->form_validation->set_rules('nome', 'Nome do usuário', 'required');
        $this->form_validation->set_rules('email', 'E-mail do usuário', 'required');

        if ($this->form_validation->run()) { // Se os dados foram recebidos com sucesso
            $nome = $this->input->post('nome');
            $email = $this->input->post('email');

            /* Carrega a classe que trata da tabela do usuário no banco. 
               Este método pega como referência a pasta application/models.
               Se a classe a ser carregada estiver em algum subdoínio, este deve ser informado também. pe.: $this->load->model('dao/UsuarioDAO');
            */
            $this->load->model('UsuarioDAO');
            $this->UsuarioDAO->cadastrarDadosUsuario($nome, $email);

            // Busque inserir códigos de tratamentos de erros caso o banco gere algum erro.

        } else {
            // código de tratamento de erro...
        }
    }
}

database php.

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'host',
    'username' => 'user',
    'password' => 'senha',
    'database' => 'db',
    'dbdriver' => 'mysqli',
    '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
);

Autoload.php

$autoload['libraries'] = array('form_validation','database');

1 answer

3


  • It was just that!!! Thank you tkmattos!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.