CodeIgniter — DataMapper — ошибка с сохранением ()

Я пытался сделать модель с DataMapper, но когда я использовал save() чтобы вставить новые данные, он возвращает ошибку.

ошибка

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

Вы должны использовать метод «set» для обновления записи.

Имя файла: C: \ wamp \ www \ website \ system \ database \ DB_active_rec.php

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

У меня есть идентификатор в базе данных с auto-incrementи я использовал метод надписи с контроллера.

Код

<?php

class Utilisateur_model extends DataMapper {

var $table = 'utilisateur';

var $validation = array(

'login' => array(

'label' => 'Login',
'rules' => array('required', 'unique', 'trim')
),
'mdp' => array(

'label' => 'Mot de passe',
'rules' => array('required', 'trim')
),
'nom_utilisateur' => array(

'label' => 'Nom',
'rules' => array('required', 'trim')
),
'prenom_utilisateur' => array(

'label' => 'Prenom',
'rules' => array('required', 'trim')
),
'email' => array(

'label' => 'Email',
'rules' => array('required', 'valid_email', 'trim')
),
'adresse' => array(

'label' => 'Adresse',
'rules' => array('required', 'trim')
)
);public static function inscription($donnees) {

$u = new Utilisateur_model();

$u->login = $donnees['login'];
$u->mdp = $donnees['mdp'];
$u->nom_utilisateur = $donnees['nom'];
$u->prenom_utilisateur = $donnees['prenom'];
$u->email = $donnees['email'];
$u->adresse = $donnees['adresse'];

if($u->save()) {

return array(true);
}
else {

return array(false, $u->error->string);
}
}
}
?>

Строка 1174 находится в этом методе:

function insert($table = '', $set = NULL)
{
if ( ! is_null($set))
{
$this->set($set);
}

if (count($this->ar_set) == 0)
{
if ($this->db_debug)
{
return $this->display_error('db_must_use_set'); //line 1174
}
return FALSE;
}

if ($table == '')
{
if ( ! isset($this->ar_from[0]))
{
if ($this->db_debug)
{
return $this->display_error('db_must_set_table');
}
return FALSE;
}

$table = $this->ar_from[0];
}

$sql = $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->ar_set), array_values($this->ar_set));

$this->_reset_write();
return $this->query($sql);
}

0

Решение

Хорошо, я узнал почему …
Потому что имена столбцов в базе данных были прописными, а в модели строчными.
Но теперь это работа: D

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]