2013-04-04 24 views
1

我有這樣的代碼在我的模型:CodeIgniter的模型不正確使用WHERE條件

$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 2013-04-04 13:45:54

+0

我不能從數據庫中的數據。在數據庫中,我有條碼編號000500007201000005304777但是當我使用的Active Record創建查詢我不能得到數據 – 2013-04-04 13:47:47

+0

這是什麼給你? '的var_dump($這 - > DB-> last_query()); exit' – landons 2013-04-04 13:58:19

回答

1

忘記的var_dump()或複雜的last_query()所有的喋喋不休,只需按照剖析你的代碼的CI過程,並添加:

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

在你的控制器活動的呼叫之後。這會告訴你你的FULL SQL QUERY(實際上,該頁面上的所有查詢)。

去做

乾淨的方法,我懷疑是你的價值被轉換爲int,它剔除的領先000

做鑄造小心的是:

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

作爲一個方面說明:
不要使用$_POST['barcode_number']反而是安全與CI的$this->input->post('barcode_number');

+0

THX的Jakub :)現在它的工作 – 2013-04-04 23:21:45

+0

好聽聽,看看codeigniter用戶指南,它給你提供了很好的例子! – Jakub 2013-04-05 00:18:02