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');
It was just that!!! Thank you tkmattos!
– Rafael Rotiroti