解决方案 »

  1.   

    用 replace  或者 on duplicate key update 代替吧
      

  2.   

    你用这个mysql_affected_rows()来判断他是否存在数据库是有bug的。如果修改前和修改后的内容是一致的,即使是已经存在于数据库,他也是返回0,换句话说mysql_affected_rows()返回0,只是告诉你没有任何数据发生更改,不代表他找不到这条数据!
    不要弄得太复杂,就先select
    根据结果写个if 决定用insert还是update就好!
      

  3.   

    要是是这样的话完全可以采用主键的形式进行replace操作,没有就是insert有就是update,LZ这样操作太过于复杂。
      

  4.   

    mysql有个很强大的功能insert into……ON DUPLICATE KEY UPDATE ,它执行插入,如果主键重复,就执行update。不过有个限制时,表最好不要有两个不同的唯一项,否则可能会有问题。
      

  5.   

    先select是王道,而且逻辑比较清晰