用的是CI框架
打开页面( 执行show()函数 )-->前台提交ID-->根据ID判断相应数据是否存在,存在则判断status字段是否为1如果status=1  --> 更新数据库,status=2 --> 返回前台,继续接收数据如果status=2  --> 提示已存在-->返回前台,继续接收数据就那么简单的执行流程
今天弄了一整天,主要是因为数据库中默认 status字段都是为1的,所以测试的时候应该不可能出现 提示已存在  的可能,除非我故意输入2次相同ID
但是却随机出现判断出status为2的情况,而且查看了数据库,对应的ID的status还真的更新为2了
看了代码一整天,想了一整天,无果后来添加一个写入本地文件的函数,在每个数据库操作语句前调用写入文件函数
发现每个函数基本上都连续调用了2次!!是连续的!!但是..............就在刚刚...突然间就好了,我连代码都没改(把代码帖在CI论坛上,发现好了后,又特地把代码帖回来测试)那种异常情况不见了...我还特地测试了100来次...100来次都正常了...我苦恼了一整天,既然就突然间好了...实在想不通,为什么函数会连续执行2次??不可能是双核CPU的关系吧...

解决方案 »

  1.   

    换回最原始的代码,又出现这种问题了...
    0.93146600 1267533620  function barcode()
    0.35639200 1267533646  function get_barcode()
    0.35944800 1267533646  function auth_goods()
    0.35957900 1267533646  function get_goods()
    0.36072600 1267533646  function get_stand_wgt()
    0.36168200 1267533646  function process_goods()
    0.36178200 1267533646  function insert_bill()
    0.37014100 1267533646  function get_barcode()
    0.37246300 1267533646  function auth_goods()
    0.37259000 1267533646  function get_goods()
    0.37296700 1267533646  function get_stand_wgt()
    0.37322200 1267533646  function process_goods()
    0.37330700 1267533646  function insert_bill()
    0.39093500 1267533646  function update_bill(96580)
    0.41207200 1267533646  function update_bill(96580)
    0.82546200 1267533649  function get_barcode()
    0.82790200 1267533649  function auth_goods()
    0.82799300 1267533649  function get_goods()
    0.82859200 1267533649  function get_stand_wgt()
    0.82891600 1267533649  function process_goods()
    0.82902700 1267533649  function update_bill(96581)
    0.83884900 1267533649  function get_barcode()
    0.84107500 1267533649  function init_data()
    0.84119600 1267533649  已经入库
    0.05860400 1267533657  function get_barcode()
    0.06088900 1267533657  function auth_goods()
    0.06097500 1267533657  function get_goods()
    0.06146400 1267533657  function get_stand_wgt()
    0.06172900 1267533657  function process_goods()
    0.06179900 1267533657  function update_bill(96582)
    0.08840800 1267533657  function get_barcode()
    0.09060800 1267533657  function init_data()
    0.09069800 1267533657  已经入库
    加粗的那段文字...
    function barcode()-->function get_barcode()-->function auth_goods()function get_goods()-->function get_stand_wgt()-->function process_goods()-->function insert_bill()上面这是正常的流程,可是function insert_bill()完后,既然又从头来了一次...
    function insert_bill()方法里根本就没有任何回调,而且function insert_bill()只是数据库操作函数,与function update_bill(96580)是在同一个函数里的,怎么说也应该再顺序执行到function update_bill(96580)才对...这到底是怎么回事呢??