2013-04-04 140 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