Codeigniter вставляет пустое значение, значение поля таблицы по умолчанию в MySQL игнорируется - PullRequest
3 голосов
/ 17 июля 2011

Я делаю вставку в таблицу, некоторые данные пусты, поэтому я ожидаю, что некоторые поля получат назначенное мной значение по умолчанию.

$data = array(
            'id'            => $id,
            'user'       => $this->input->post('name'),
            );

$this->the_model->the_model_funciton($data);

Проблема в пользовательском поле, значение по умолчаниюдля поля 'Anon', но если в сообщении нет данных ('name'), вместо поля по умолчанию вставляется пустое значение.

Пользовательское поле varchar, null.

Ответы [ 3 ]

5 голосов
/ 17 июля 2011

Будет ли это сделать?

$data = array(
           'id'   => $id
       );

if ($user = $this->input->post('name')) {
   $data['user'] = $user;
}
2 голосов
/ 17 июля 2011

Вероятно, это связано с методом post. Когда name пусто или не определено, возвращается пустая строка. Который затем получает вход в столбце.

1 голос
/ 17 июля 2011

Попробуйте это

$default_user = "Anon";
$username = $this->input->post('name');
if($username == empty) ? $username = $default_user : $this->input->post('name'));
$data = array(
            'id'            => $id,
            'user'       => $this->input->post('name'),
            );

$this->the_model->the_model_function($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...