2013-04-04 4 views
1

У меня есть этот код в моей модели:CodeIgniter модель не так с тем, где условие

$this->db->where('transaction_income_barcode.barcode_number', $barcode_number); 

Значение $barcode_number является 000500007301000005304778

Так я сравниваю с помощью PHP это правильное значение:

if($_POST['barcode_number'] == '000500007301000005304778') 

, но каким-то образом через модель он работает неправильно.

Любые идеи?

+0

Не могу сказать из этого. Что такое сгенерированный запрос? ('$ this-> db-> last_query()') и что не работает? – landons

+0

Я не могу получить данные из базы данных .. в базе данных у меня есть номер штрих-кода 000500007201000005304777, но когда я создаю запрос с использованием активной записи, я не могу получить данные –

+0

Что это дает вам? 'Var_dump ($ this-> db-> last_query()); exit' – landons

ответ

1

Забудьте всю болтовню var_dump() или сложного last_query(), просто следить за процессом CI профилирования кода и добавьте:

$this->output->enable_profiler(TRUE); 

В контроллере после активного вызова. Это покажет вам ваш FULL SQL QUERY (фактически, все запросы на этой странице).

Cleanest способ пойти об этом, мое подозрение в том, что ваше значение преобразуется в int и обрезает ведущий 000 «ы

Позаботьтесь о том, что, делая бросок:

$this->db->where('transaction_income_barcode.barcode_number', (string)$barcode_number); 

в качестве примечания:
не используйте $_POST['barcode_number'] вместо быть безопасным с КИ $this->input->post('barcode_number');

+0

thx jakub :) теперь его работа –

+0

хорошо послушайте, взгляните на codeigniter userguide, это дает вам отличные примеры! – Jakub

Смежные вопросы