У меня есть данные ExtJS из комбо-поля в CodeIgniter. CodeIgniter считывает опубликованные данные и запускает db-> insert для обновления базы данных mssql.
Проблема в том, что если пользователь не выбирает выбор из выпадающего списка, он отправляется в CodeIgniter как ничто, Codeignighter затем считывает этот фрагмент опубликованных данных в виде пустой строки и пытается записать это в поле int в базе данных. вызывает ошибку.
Мне кажется, мне нужен CodeIgniter для обработки строки как NULL, если она пуста, и числа, если оно таковое. Я пытался использовать php-тип juggling (int) для его преобразования, но он принимает значение 0. Это недопустимое значение, поскольку оно не соответствует ни одному выделению в моем поле типа int или int в моей БД.
Есть ли способ заставить CodeIgniter обрабатывать пустые строки как NULLS вместо пустых строк?
[ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ КОДА]
{
//ExtJS combo object
xtype: 'combo',
id: 'Referrer',
store: new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: '/referrals/index.php/referrers/read',
method: 'POST'
}),
reader: new Ext.data.JsonReader({
root: 'results',
fields: [
{name: 'ID'},
{name: 'Referrer'}
]
})
}),
displayField: 'Referrer',
valueField: 'ID',
value: 1,
typeAhead: true,
hiddenName: 'Referrers_ID',
mode: 'remote',
triggerAction: 'all',
fieldLabel: 'Referrer',
selectOnFocus: true,
anchor: '100%'
}
//CI CODE TO GRAB FROM POST INTO AN ARRAY THEN OUT TO THE DB
public function create(){
$data = array(
'FirstName' => $this->input->post('FirstName', false),
'LastName' => $this->input->post('LastName', false),
'DOB' => $this->input->post('DOB', false),
'Email' => $this->input->post('Email', false),
'Phone' => $this->input->post('Phone', false),
'StudentNo' => $this->input->post('StudentNo', false),
'Sex' => $this->input->post('Sex', false),
'Advisors_ID' => $this->input->post('Advisors_ID', false),
'DateSeen' => $this->input->post('DateSeen', false),
'Classifications_ID' => join(",", $this->input->post('Classifications_ID', false)),
'Referrers_ID' => $this->input->post('Referrers_ID', false),
'Referrals' => $this->input->post('Referrals', false),
'ReferralNotes' => $this->input->post('ReferralNotes', false),
'Registration1' => $this->input->post('Registration1', false),
'Registration2' => $this->input->post('Registration2', false),
'Notes' => $this->input->post('Notes', false)
);
$this->db->insert('Clients', $data);
$insert_id = $this->db->insert_id();
}