#php #codeigniter-4
#php #codeigniter-4
Вопрос:
Мой запрос выглядит следующим образом
function reset_attempt($usr_id, $attempt = 0)
{
if (!$usr_id)
exit("No user found");
$builder = $this->table($this->table);
$builder->set('usr_attempt', $attempt);
$builder->set('usr_lock', NULL);
$builder->where("usr_attempt > ", $this->max_attempt);
$builder->where($this->primaryKey, $usr_id);
echo "<br> Query: " . $builder->getCompiledUpdate(false);
exit();
// $builder->update($this->table);
}
Затем я получаю следующее сообщение об ошибке
CodeIgniterDatabaseExceptionsDatabaseException #8
You must use the "set" method to update an entry.
Комментарии:
1. Все в порядке, работает. Я использовал эту форму в других запросах
2. Здесь
$this->table
свойство текущего класса и$this->table()
метод унаследованного класса. Нажмите здесь для получения дополнительной информации
Ответ №1:
Сработало следующее
class UserModel extends Model
{
// Property used to connect with database
protected $db;
function __construct()
{
// Connedt with database
$this->db = ConfigDatabase::connect();
}
function reset_attempt($usr_id, $attempt = 0)
{
if (!$usr_id)
exit("No user found");
// Call method table() with $this->db
$builder = $this->db->table($this->table);
$builder->set('usr_attempt', $attempt);
$builder->set('usr_lock', NULL);
$builder->where("usr_attempt > ", $this->max_attempt);
$builder->where($this->primaryKey, $usr_id);
echo "<br> Query: " . $builder->getCompiledUpdate(false);
exit();
}
}
Вывод
Query: UPDATE `users` SET `usr_attempt` = '0', `usr_lock` = NULL WHERE `usr_attempt` > 2 AND `usr_id` = '1'